Ceci fonctionne :
1 2 3 4 5
| DECLARE @TST_ID TABLE(TST_ID INT);
INSERT INTO dbo.T_TEST_TST OUTPUT INSERTED.TST_ID INTO @TST_ID DEFAULT VALUES
SELECT * FROM @TST_ID; |
Je cherche maintenant à faire la même chose pour insérer plusieurs lignes.
J'en suis là :
1 2 3 4 5 6 7 8 9 10
| DECLARE @INSERTED TABLE(TST_ID INT, STR_ID TINYINT, TRN_DATE DATETIME, TRN_TILL INT, TRN_TICKET INT, BARCODE VARCHAR(40), TRN_VALUE DECIMAL(8,2), TTR_ID INT);
INSERT INTO T_TEST_TST(TST_ID) OUTPUT INSERTED.TST_ID, T.* INTO @INSERTED
SELECT
NULL
FROM
BRU32SRV129SQL2.TEST.DBO.TEST_GIFT_USAGE TGU
LEFT JOIN DBO.V_GIFT_VGF VGF
ON TGU.BARCODE = VGF.VGF_BARCODE
WHERE GFT_ID IS NULL
SELECT * FROM @INSERTED |
N.B. : V_GIFT_VGF est une vue des gifts existant avec leur id et leur barcode.
Je ne trouve pas ce qu'il faut mettre à la place de NULL dans la clause SELECT... J'ai essayé plusieurs choses mais je reçois chaque fois une erreur car j'essaie d'insérer une valeur dans une colonne identity...
Suis-je sur la bonne voie ou totalement à coté de mes pompes ?
(vivement le mois d'août, on m'a promis une formation avancée en sql...)
EDIT : Pour le moment, je me dirige vers le merge puisque ça fonctionne et me donne quelque chose que je suis capable d'exploiter en attendant d'avoir un éclaircissement sur le trigger instead of.
Partager