IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

comment archiver une table automatiquement?


Sujet :

Administration SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 61
    Points : 38
    Points
    38
    Par défaut comment archiver une table automatiquement?
    bonjour tt le monde
    j'ai une base dans sql server 2000

    j'ai une table personnel
    code,nom,...
    je ve que a chaque debut de mois archiver automatiquement les donnees de cette table
    comme sa je pe consulter la table de personnel d'un mois donné ou d'une semestre

    comment je pa faire
    aider moi
    merci d'avance

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Salut,

    Ca n'est pas vraiment un problème de SQL mais plutôt de modélisation. Il y a plusieurs solutions :

    1/ Ajouter un champ "période" à ta table, qui aurait une valeur "NULL" pour la période en cours. Pour archiver ta période, tu dupliques tous ces enregistrements "en cours" en mettant ton champ "période" à jour.
    Souci, tu mélanges 2 notions distinctes au sein d'une même table

    2/ Avoir une 2° table d'archivage ayant les mêmes colonnes que la table d'origine + ma colonne "période". A chaque mois, tu dupliques le contenu de ta table "en cours" vers ta table période en gérant le champ "période" avec la valeur du mois en cours.
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 61
    Points : 38
    Points
    38
    Par défaut
    la 2 eme solution je pens
    mais le probleme c commen prendre les donnes et les mettre dans la 2eme table
    je pense sa doit etre un triger
    es ce que vous pouvez me donner la syntax du trigger svp
    merci

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Salut,
    A mon avis pour mettre une table à jour 1 fois par mois (genre le premier jour du mois), le mieux est de créer une procédure et de l'exécuter via un batch exécuté automatiquement via les tâches planifiées de windows.
    En tout cas un trigger attend un évenement sur la base (par exemple un insert) pour s'éxecuter, donc pas moyen de le faire s'exécuter automatiquement une fois par mois.

  5. #5
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    En SQL Server 2000, il est possible d'utiliser les DTS, pour planifier l'exécution d'un ordre SQL ou une procédure. Tu trouveras des ressources facilement en cherchant sur Internet. En 2005 il faut utiliser SSIS, c'est un peu plus compliqué mais il y a des tutos sur DVP (http://fablain.developpez.com/tutoriel/ssis/)
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  6. #6
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 61
    Points : 38
    Points
    38
    Par défaut
    es ce que vous avez une idee sur le syntax de la procedure ?

  7. #7
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    le plus simple est d'utiliser un INSERT INTO planifié dans un travail de l'agent.
    La syntaxe est dans l'aide en ligne de SQL Server.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 139
    Points : 137
    Points
    137
    Par défaut
    Pour avoir un "pseudo" suivi de versions (comme souhaité il me semble), tu peux ajouter une colonne date à ta table d'archivage qui indiquera la date à laquelle tu as fait l'archivage...

Discussions similaires

  1. [phpMyAdmin] Comment avoir une table triée sur un critère automatiquement ?
    Par bluemanca dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 05/05/2012, 11h11
  2. Réponses: 2
    Dernier message: 27/07/2011, 12h16
  3. comment filtrer une table avec deux criteres càd 2 colonnes
    Par athmane2dz dans le forum Bases de données
    Réponses: 7
    Dernier message: 28/07/2004, 15h25
  4. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 20h21
  5. Comment Copier une table dans un fichier?
    Par thx2003 dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/12/2003, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo