Maison >base de données >tutoriel mysql >Comment puis-je récupérer des valeurs d'identité après une instruction INSERT à l'aide de la clause OUTPUT ?

Comment puis-je récupérer des valeurs d'identité après une instruction INSERT à l'aide de la clause OUTPUT ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-17 12:16:09575parcourir

How Can I Retrieve Identity Values After an INSERT Statement Using the OUTPUT Clause?

Récupération efficace des ID de ligne nouvellement insérés avec la clause OUTPUT de SQL

Les opérations de base de données nécessitent souvent de récupérer l'ID d'une ligne nouvellement insérée dans la même requête. Cet article montre comment utiliser la puissante clause OUTPUT pour accomplir cela en SQL.

Structure des requêtes SQL

La clause OUTPUT est parfaitement intégrée dans la déclaration INSERT :

<code class="language-sql">INSERT INTO MyTable (Name, Address, PhoneNo)
OUTPUT INSERTED.Id AS @var  --Retrieves the ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>

Affichage de l'identifiant

La méthode la plus simple affiche l'ID nouvellement généré directement dans les résultats de la requête :

<code class="language-sql">INSERT INTO MyTable (Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>

Stockage de l'ID dans une variable

Pour les scénarios plus complexes nécessitant un traitement ultérieur dans T-SQL, utilisez une variable de table :

<code class="language-sql">DECLARE @OutputTbl TABLE (ID INT);

INSERT INTO MyTable (Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl (ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>

Cette approche stocke l'ID généré dans @OutputTbl, permettant des opérations ultérieures dans votre code T-SQL. La clause OUTPUT offre la flexibilité d'inclure d'autres données de colonnes pertinentes selon les besoins.

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!

Déclaration:
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