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!