Maison >base de données >tutoriel mysql >Comment récupérer l'ID généré automatiquement après une INSERT dans SQL Server ?

Comment récupérer l'ID généré automatiquement après une INSERT dans SQL Server ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-17 13:16:11862parcourir

How to Retrieve the Auto-Generated ID After an INSERT in SQL Server?

Récupération des identifiants générés automatiquement après les opérations INSERT de SQL Server

L'ajout de nouvelles données à une table SQL Server implique souvent des colonnes d'identité générées automatiquement. Ce guide montre comment récupérer efficacement l'ID nouvellement généré après une instruction INSERT. La clause OUTPUT de SQL Server fournit une solution propre.

La solution OUTPUT Clause

La clause OUTPUT vous permet de spécifier les colonnes de la ligne nouvellement insérée à renvoyer. C'est idéal pour capturer l'ID généré automatiquement.

Syntaxe :

<code class="language-sql">INSERT INTO YourTable (column1, column2, ...)
OUTPUT Inserted.IDColumn  -- Replace IDColumn with your actual ID column name
VALUES (value1, value2, ...);</code>

Explication :

  • Inserted : Une table temporaire contenant la ligne nouvellement insérée. Il reflète la structure de votre table cible.
  • IDColumn : Le nom de votre colonne d'identité générée automatiquement. Remplacez cet espace réservé par le nom réel de votre colonne.

Exemple illustratif :

Disons que vous avez une Customers table :

<code class="language-sql">CREATE TABLE Customers (
  CustomerID INT IDENTITY(1, 1) PRIMARY KEY,
  CustomerName VARCHAR(255) NOT NULL
);</code>

Pour insérer un nouveau client et obtenir le CustomerID, utilisez :

<code class="language-sql">INSERT INTO Customers (CustomerName)
OUTPUT Inserted.CustomerID
VALUES ('Acme Corp');</code>

Cela renvoie le CustomerID nouvellement généré. Vous pouvez ensuite utiliser cette valeur dans d'autres requêtes ou la stocker dans une variable.

Remarque importante : La clause OUTPUT n'est pas limitée à une seule colonne. Vous pouvez récupérer plusieurs colonnes de la ligne insérée en les répertoriant, séparées par des virgules, dans la clause OUTPUT.

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