Maison >base de données >tutoriel mysql >Comment puis-je récupérer la valeur d'identité après une instruction INSERT dans SQL ?

Comment puis-je récupérer la valeur d'identité après une instruction INSERT dans SQL ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-17 12:31:12471parcourir

How Can I Retrieve the Identity Value After an INSERT Statement in SQL?

Récupération des valeurs d'identité nouvellement générées après les instructions SQL INSERT

Souvent, après avoir inséré des données dans une table SQL avec une colonne d'identité à incrémentation automatique, vous devez accéder à l'ID nouvellement généré. La clause OUTPUT offre un moyen pratique d'y parvenir.

Ce guide illustre deux méthodes courantes pour récupérer des valeurs d'identité à l'aide de la clause OUTPUT :

Méthode 1 : Sortie vers la console (puis vers votre application)

La méthode la plus simple génère la valeur d'identité directement sur la console. Ceci est utile lorsqu'il s'agit d'insertions uniques et de récupération de l'ID dans le code de votre application :

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

Le code de votre application (par exemple, en utilisant le ExecuteScalar() d'ADO.NET) peut alors capturer cette valeur de sortie unique.

Méthode 2 : Sortie vers une variable de table (pour des insertions multiples ou un traitement ultérieur)

Pour plusieurs insertions ou lorsque vous devez traiter les ID générés dans votre code T-SQL, utilisez une variable de table comme cible de la clause OUTPUT :

<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');

-- Now you can access the ID(s) from @OutputTbl
SELECT ID FROM @OutputTbl;</code>

Cette méthode vous permet de travailler avec plusieurs ID insérés directement dans votre procédure stockée ou votre script T-SQL. Vous pouvez également utiliser une table temporaire (#temp) ou même une table permanente comme cible de sortie.

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