OVH Cloud OVH Cloud

Inserted et deleted

2 réponses
Avatar
Oliv'
Helloooo à tous,
Besoin de quelques confirmations
Dans un trigger comment fait'on pour contrôler qu'une jonction entre deleted
et inserted est correcte ou
Comment peux t'on voir le contenu de ces "tables" ? en faisant un select *
into ##tabledeleted from deleted ?
Ou plutot Avec le générateur de profil ?

les tables inserted et deleted contiennent uniquement les lignes provenant
de l'opération update cela veux donc dire qu'il peut y avoir UNE ou
PLUSIEURS lignes en même temps selon l'opération initiale ?
Exemple soit une table toto
id |a
1|1
2|2
si je fais un
update toto set toto.a = 5 where id = 1
je n'aurais qu'une ligne dans inserted et 1 dans deleted

et en faisant un
update toto set toto.a = 5
j'aurais 2 lignes
C'est bien cela ou alors il traite d'abord la première ligne puis la
suivante ?
Oliv'

2 réponses

Avatar
bruno reiter [MVP]
dans MSSQLServer, un trigger se déclenche une fois par commande (INS DEL
UPD) pour l'ensemble des lignes, après la mise à jour (sauf INSTEAD OF)
les tables inserted et deleted contiennent l'ensemble des lignes impactées,
il n'y a pas besoin de le vérifier (heureusement!)
INS inserted contient l'ensemble des lignes insérées
DEL deleted contient l'ensemble des lignes supprimées
UPD deleted contient l'ensemble des lignes avant modif
et inserted contient l'ensemble des lignes après modif

br


"Oliv'" <(supprimerceci) wrote in message
news:420736f9$0$22352$
Helloooo à tous,
Besoin de quelques confirmations
Dans un trigger comment fait'on pour contrôler qu'une jonction entre


deleted
et inserted est correcte ou
Comment peux t'on voir le contenu de ces "tables" ? en faisant un select *
into ##tabledeleted from deleted ?
Ou plutot Avec le générateur de profil ?

les tables inserted et deleted contiennent uniquement les lignes


provenant
de l'opération update cela veux donc dire qu'il peut y avoir UNE ou
PLUSIEURS lignes en même temps selon l'opération initiale ?
Exemple soit une table toto
id |a
1|1
2|2
si je fais un
update toto set toto.a = 5 where id = 1
je n'aurais qu'une ligne dans inserted et 1 dans deleted

et en faisant un
update toto set toto.a = 5
j'aurais 2 lignes
C'est bien cela ou alors il traite d'abord la première ligne puis la
suivante ?
Oliv'




Avatar
Oliv'
Merci pour ces infos j'avais une erreur de jonction corrigée à l'aide d'une
table temporaire globale.
Oliv'

"bruno reiter [MVP]" <remove.this! a écrit dans le message
de news:
dans MSSQLServer, un trigger se déclenche une fois par commande (INS DEL
UPD) pour l'ensemble des lignes, après la mise à jour (sauf INSTEAD OF)
les tables inserted et deleted contiennent l'ensemble des lignes impactées,
il n'y a pas besoin de le vérifier (heureusement!)
INS inserted contient l'ensemble des lignes insérées
DEL deleted contient l'ensemble des lignes supprimées
UPD deleted contient l'ensemble des lignes avant modif
et inserted contient l'ensemble des lignes après modif

br


"Oliv'" <(supprimerceci) wrote in message
news:420736f9$0$22352$
Helloooo à tous,
Besoin de quelques confirmations
Dans un trigger comment fait'on pour contrôler qu'une jonction entre


deleted
et inserted est correcte ou
Comment peux t'on voir le contenu de ces "tables" ? en faisant un select *
into ##tabledeleted from deleted ?
Ou plutot Avec le générateur de profil ?

les tables inserted et deleted contiennent uniquement les lignes


provenant
de l'opération update cela veux donc dire qu'il peut y avoir UNE ou
PLUSIEURS lignes en même temps selon l'opération initiale ?
Exemple soit une table toto
id |a
1|1
2|2
si je fais un
update toto set toto.a = 5 where id = 1
je n'aurais qu'une ligne dans inserted et 1 dans deleted

et en faisant un
update toto set toto.a = 5
j'aurais 2 lignes
C'est bien cela ou alors il traite d'abord la première ligne puis la
suivante ?
Oliv'