Maison >base de données >tutoriel mysql >Comment récupérer des clés générées automatiquement dans SQL Server ?

Comment récupérer des clés générées automatiquement dans SQL Server ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-17 13:26:13993parcourir

How to Retrieve Automatically Generated Keys in SQL Server?

Accès aux clés générées automatiquement dans SQL Server

Lorsque vous travaillez avec des tables SQL Server contenant des colonnes d'ID générées automatiquement, il est crucial de récupérer efficacement les valeurs nouvellement générées. Ce guide présente une méthode simple et efficace utilisant les fonctionnalités intégrées de SQL Server.

La solution :

L'instruction INSERT ... OUTPUT fournit un moyen concis d'insérer une ligne et de capturer simultanément la ou les clés générées en une seule opération. Voici comment cela fonctionne :

<code class="language-sql">INSERT INTO table (name)
OUTPUT Inserted.ID
VALUES ('bob');</code>

Dans cet exemple, table représente votre table avec une colonne ID configurée comme colonne d'identité ou utilisant un type de données prenant en charge la génération automatique de valeur (comme le GUID). La clause OUTPUT dirige les colonnes de la ligne nouvellement insérée, y compris le ID généré, vers un jeu de résultats temporaire.

L'alias Inserted donne accès à cet ensemble de résultats temporaires, permettant la récupération du ID à l'aide de Inserted.ID.

Application pratique :

Pour stocker le ID généré dans une variable, utilisez ce qui suit :

<code class="language-sql">DECLARE @id INT;
INSERT INTO table (name)
OUTPUT @id = Inserted.ID
VALUES ('bob');
SELECT @id;</code>

Cette approche ne se limite pas aux colonnes d'identité ; il fonctionne également avec d'autres colonnes générées automatiquement, telles que les GUID. Par exemple :

<code class="language-sql">INSERT INTO table (guid)
OUTPUT Inserted.guid
VALUES (NEWID());</code>

Cela insère une ligne avec une colonne GUID et récupère immédiatement la valeur GUID générée.

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