Insertion dans une table temporaire ou une variable de table à l'aide de MERGE
Dans SQL Server, la clause OUTPUT ne peut pas récupérer les données de plusieurs tables, ce qui rend difficile la capturer des valeurs spécifiques lors des opérations d’insertion. Cependant, l'instruction MERGE fournit une solution à ce problème.
Pour insérer des données dans une table temporaire ou une variable de table à l'aide de MERGE :
Voici un exemple :
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 cet exemple, l'instruction MERGE remplit la table temporaire @MyTableVar avec Inserted.ID et Valeurs Table2.ID. La clause OUTPUT spécifie que ces deux colonnes doivent être affichées dans la table temporaire.
Cette méthode vous permet de capturer et de travailler efficacement avec les données de différentes tables lors des opérations d'insertion en utilisant la puissance des instructions MERGE dans SQL Server.
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!