Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème trigger et insertionm multiple

2 réponses
Avatar
Pierre BOUSQUET
Bonjour,

J'ai un trigger sur une table (TABLE1) qui met à jour certains champs
(de cette même table) lors d'une insertion.
Lorsque j'exécute un seul INSERT dans cette table aucun problème tout
fonctionne, par contre lorsque je fais une insertion multiple du type
INSERT INTO table1 FROM table2, seul le trigger sur le dernier
enregistrement est exécuté.

Y-a-t-il un moyen d'obliger MSSQL à exécuter le trigger pour chaque
enregistrement inséré ?


Merci d'avance

--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "

2 réponses

Avatar
Fred BROUARD
Pierre BOUSQUET a écrit :
Bonjour,

J'ai un trigger sur une table (TABLE1) qui met à jour certains champs
(de cette même table) lors d'une insertion.
Lorsque j'exécute un seul INSERT dans cette table aucun problème tout
fonctionne, par contre lorsque je fais une insertion multiple du type
INSERT INTO table1 FROM table2, seul le trigger sur le dernier
enregistrement est exécuté.

Y-a-t-il un moyen d'obliger MSSQL à exécuter le trigger pour chaque
enregistrement inséré ?




NON !

Les triggers fonctionne de manière ensembliste... A vous d'écrire le
code SQL qui va bien en utilisant par exemple exclusibvement des
requêtes SQL.

Pour quelques exemples, suivez l'article que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L5

A +


Merci d'avance





--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Pierre BOUSQUET
ok merci


Le 2007/08/06, Fred BROUARD a supposé :
Pierre BOUSQUET a écrit :
Bonjour,

J'ai un trigger sur une table (TABLE1) qui met à jour certains champs (de
cette même table) lors d'une insertion.
Lorsque j'exécute un seul INSERT dans cette table aucun problème tout
fonctionne, par contre lorsque je fais une insertion multiple du type
INSERT INTO table1 FROM table2, seul le trigger sur le dernier
enregistrement est exécuté.

Y-a-t-il un moyen d'obliger MSSQL à exécuter le trigger pour chaque
enregistrement inséré ?




NON !

Les triggers fonctionne de manière ensembliste... A vous d'écrire le code SQL
qui va bien en utilisant par exemple exclusibvement des requêtes SQL.

Pour quelques exemples, suivez l'article que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L5

A +


Merci d'avance






--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "