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

MS SQL Server Discussion :

[MSSQL05] Archivage de données, trigger sur une vue


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 218
    Par défaut [MSSQL05] Archivage de données, trigger sur une vue
    Bonjour,

    Je dispose d'une table qui est la copie conforme d'une vue, avec un champ en plus que j'ai défini (matable = mavue + 1 autre champ). Ma table est en fait une table d'archivage, et le champ que j'ai défini est un identifiant computed (concaténation de plusieurs champs).

    Je voudrais qu'à chaque fois que les données produites par ma vue soient modifiées, ajoutées, supprimées, ces données soient insérées dans ma table...

    Je pensais faire un "trigger on update" (ou delete, insert) sur ma vue mais cela ne prendra pas en compte les données produites par ma vue mais seulement la structure de ma vue ? Avez vous une piste pour que je puisse effectuer mon archivage automatiquement... Sans que je passe par des triggers sur chaque table qui compose ma vue (ma vue contient une centaine de champs sur 22 tables).

    Merci !

  2. #2
    Membre Expert
    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
    Par défaut
    Bonjour,

    Il n'y a pas de solution simple... mais ma question : pourquoi as-tu une table et une vue. La vue ne suffit-elle pas ? Si tu veux matérialiser le résultat de ta vue, tu peux l'indexer

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 218
    Par défaut
    La vue ne suffit pas dans le sens où je dois archiver toutes les données produites par ma vue. Je prends un exemple pour expliquer :

    Etape 1:
    select * from mavue => id = 1, champ = 'toto'

    Donc dans ma table j'aurai :
    select * from matable => id_archive = 1, id = 1, champ = 'toto'

    Etape 2:
    On apporte des modifs sur les tables qui composent la vue, 'toto' devient 'titi'.
    Donc : select * from mavue => id = 1, champs = 'titi'

    Et là dans ma table d'archivage, je dois avoir :
    select * from matable => id_archive = 1, id = 1, champs = 'toto'
    => id_archive = 2, id = 1, champs = 'titi'

    Et c'est à l'étape 2 que je ne vois pas comment remplir automatiquement ma table...

    [UPDATE]
    Finalement mon soucis pourra se résoudre par un simple backup via DTS quotidien... Ca satisfait les attentes du projet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. mySql : trigger sur une vue qui référence plusieurs tables
    Par charlesS dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 23/02/2012, 14h50
  2. trigger sur une vue sur sqlserver 2005
    Par thor76160 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 07/03/2009, 11h41
  3. Trigger d'insertion sur une vue
    Par Cirtadz dans le forum PL/SQL
    Réponses: 40
    Dernier message: 19/02/2009, 12h56
  4. TRIGGER sur une vue
    Par islamune9 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/09/2007, 17h32
  5. [Trigger] Comment le réaliser sur une vue ?
    Par mandale dans le forum DB2
    Réponses: 1
    Dernier message: 19/09/2005, 13h43

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