Insérer dans... Fusionner... Sélectionner dans SQL Server
Dans SQL Server, l'instruction INSERT INTO...SELECT permet vous d'insérer les données d'une requête SELECT dans une table cible. Cependant, lorsque la requête SELECT implique des données provenant de plusieurs tables, la clause OUTPUT ne peut pas capturer les données de différentes tables.
Présentation de MERGE
Pour résoudre ce problème, envisagez d'utiliser la Instruction MERGE. MERGE combine les opérations INSERT, UPDATE et DELETE en une seule instruction. Il vous permet d'effectuer des actions conditionnellement sur les lignes cibles en fonction de critères spécifiques.
Utilisation de MERGE pour les données de sortie
Pour capturer les données des tables insérées et source, vous pouvez utilisez la clause OUTPUT dans une instruction MERGE. L'exemple suivant montre comment insérer des données de plusieurs tables et afficher les fichiers Inserted.ID et Table2.ID :
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 instruction MERGE :
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!