Je dois faire l'insert d'une table complète vers une autre ayant une clé primaire incrémentée par l'application où les données sont saisies. (pas d'INDENTITY)
J'aimerai générer cette clé par trigger mais j'ai bien l'impression que je vais devoir utiliser les curseurs :-/
Je pense que je fais fausse route pour deux raisons, le trigger ne s'éxécutera qu'une seule fois même s'il est déclenché par un insert de plusieurs lignes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE TRIGGER TRG_TABLE_A_AUTOINCREMENT ON TABLE_A INSTEAD OF INSERT AS DECLARE @NEWID INT BEGIN SELECT @NEWID = (SELECT ISNULL(MAX(ID), 0)+1 FROM TABLE_A) INSERT INTO TABLE_A (ID, champ1, champ2) SELECT @NEWID, champ1, champ2 FROM INSERTED END
Et secondo, l'insert déclenchant le trigger ne passe pas puisqu'il attend une donnée pour la clé primaire.
Si vous pouvez confirmer mes doutes...
Partager