|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : avril 2002 Messages : 124 ![]() |
Bonjour,
a tous, j'ai écrit le trigger suivant en SQL 2000: Code :
Code :
DELETE FROM TBLIMPORTSALES_ISA WHERE isa_id = 2756 mais si je fais Il ne fonctionne pas. Merci pour votre aide NB: Il s'agit de tables importées, je ne peux pas utilisé l'intégrité référentiel Tornade |
||
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Fabrice MollInscription : juillet 2007 Messages : 141 ![]() |
C'est parce que, et je pense ne pas me tromper, la table deleted dans le second cas contient plus d'un record. Et le trigger s'enclenche une seule fois pour l'ensemble des records supprimés.
|
|
00
|
|
|
#3 | ||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 695 ![]() |
Bonjour,
C'est presque exact. Comme votre trigger n'est pas ensembliste, lorsque vous écrivez DELETE sans clause WHERE, votre variable @id contient le dernier isa_id que vous avez supprimé de la table tblimportsales_ISA. Il vous faudrait donc recoder votre trigger en écrivant : Code :
|
||
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : avril 2002 Messages : 124 ![]() |
Bonjour,
Un grand merci, la procédure marche Nickel. Par contre j'ai pas compris pourquoi il y avait de 'FROM' et que ca marche pas sans les 2 FROM Merci Beaucoup |
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 695 ![]() |
Bonjour,
TSQL vous y oblige pour spécifier une jointure sur une instruction UPDATE ou DELETE. Cela peut paraître bizarre de prime-abord, mais pourtant lorsqu'on écrit une commande INSERT INTO maTable SELECT mesColonnes FROM mesTables, on est dans le même "cas" |
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : avril 2002 Messages : 124 ![]() |
Merci pour l'explication !!
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com