|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : avril 2010 Messages : 5 ![]() |
Bonjour à tous,
En fait, je tourne en rond depuis ce matin à la recherche d'une solution. J’explique. Je suis dans un trigger que je veux rendre le plus dynamiquement possible, car il sera dupliqué sur plusieurs tables de ma base (si il marche un jour...). Dans ce trigger, j'ai besoin de comparer les champs avant et après insertion afin d'insérer des valeurs dans une autre table. Pour cela, j'utilise les tables inserted & deleted. Comme je l'ai expliqué plus haut, il faut que ce soit dynamique donc je ne veux pas écrire une comparaison pour chaque colonne de la table et recommencer cela pour chaque table donc, je parcours le schéma de ma table pour avoir le nom des colonnes : Code :
Maintenant je voudrais récupérer la valeur avant et après insertion de la colonne @nomcol et c'est là que rien ne va plus, car je n'arrive pas à faire une requête sql dynamique à l'intérieur de ma boucle sur la table inserted ou deleted. par exemple si je place ce code dans ma boucle : Code :
Avez-vous une idée ? Merci de votre aide. |
||||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour
Quand vous utilisez EXECUTE, la chaine est executée dans un contexte différent. Ainsi, vos éventuelles variables ainsi que vos pseudo tables inserted et deleted n'existe pas ! Mais un tel trigger va être une catastrophe ! Pourquoi ne pas au moins générer vos ordres de creation de trigger à partir de vos tables systèmes, afin de créer facilement vos triggers ? (les tables inserted et deleted ont la meme structure que la table mise à jour.) Vos triggers seront au moins plus performants (effectivement par contre, il faudra les modifier à chaque modification de table...) Code SQL :
|
||
|
|
10
|
|
|
#3 |
|
Invité de passage
![]() Inscription : avril 2010 Messages : 5 ![]() |
Bonjour,
Merci pour cette idée, je vais essayer de créer mes triggers par soft suivants la structure des tables. |
|
|
00
|
|
|
#4 | |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Citation:
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com