Insertion et sortie de données à l'aide de MERGE dans SQL Server
Dans cette requête, nous cherchons à insérer des données dans Table3 à l'aide d'une instruction SELECT et à capturer à la fois l'ID inséré et une autre valeur de colonne d'une autre table. La tentative initiale d'utilisation de la clause OUTPUT a échoué en raison de références croisées.
Pour surmonter cette limitation, nous exploitons l'instruction MERGE. En remplissant le tableau 3 à l'aide d'une instruction MERGE, nous pouvons utiliser les valeurs des données insérées et des données sources dans la clause de sortie.
Voici la requête révisée :
MERGE INTO Table3 USING ( SELECT null AS col2, 110 AS col3, Table1.ID AS col4, Table2.Column2 AS col5, Table2.ID AS col6 FROM Table1 JOIN Table1Table2Link ON Table1.ID=Table1Table2Link.Column1 JOIN Table2 ON Table1Table2Link.Column2=Table2.ID ) AS s ON 1 = 0 -- Always not matched WHEN NOT MATCHED THEN INSERT (Column2, Column3, Column4, Column5) VALUES (s.col2, s.col3, s.col4, s.col5) OUTPUT Inserted.ID, s.col6 INTO @MyTableVar (insertedId, Table2Id);
Dans cette requête :
En utilisant MERGE de cette manière, nous pouvons insérer des données et capturer des informations supplémentaires provenant de plusieurs tables, y compris l'ID inséré, dans une seule instruction.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!