Maison > base de données > tutoriel mysql > Comment l'instruction MERGE de SQL Server peut-elle insérer des données et générer plusieurs colonnes à partir de différentes tables ?

Comment l'instruction MERGE de SQL Server peut-elle insérer des données et générer plusieurs colonnes à partir de différentes tables ?

Linda Hamilton
Libérer: 2024-12-27 10:04:14
original
930 Les gens l'ont consulté

How Can SQL Server's MERGE Statement Insert Data and Output Multiple Columns from Different Tables?

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); 
Copier après la connexion

Dans cette requête :

  • L'instruction MERGE remplit le tableau 3 avec les données de la sous-requête.
  • L'instruction MERGE La clause OUTPUT spécifie que l'ID inséré et Table2.ID doivent être affichés dans la table temporaire @MyTableVar.
  • La clause WHEN NOT MATCHED garantit que les données sont insérées si elles n'existent pas déjà dans la table3.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal