Récupération de la clé primaire GUID nouvellement insérée dans SQL Server sans variables
Travailler avec des GUID comme clés primaires nécessite souvent de récupérer le GUID nouvellement inséré sans utiliser de variables. Cet article montre comment y parvenir efficacement.
Pourquoi SCOPE_IDENTITY() ne fonctionne pas pour les GUID
SCOPE_IDENTITY()
ne convient pas à la récupération de GUID car il ne fonctionne qu'avec des colonnes d'identité basées sur des nombres entiers.
La solution : la clause OUTPUT
La clause OUTPUT
fournit une solution propre et efficace, même lors de l'insertion de plusieurs lignes.
<code class="language-sql">CREATE TABLE dbo.GuidPk ( ColGuid uniqueidentifier NOT NULL DEFAULT NewSequentialID(), Col2 int NOT NULL ); DECLARE @op TABLE ( ColGuid uniqueidentifier ); INSERT INTO dbo.GuidPk (Col2) OUTPUT inserted.ColGuid INTO @op VALUES (1); SELECT * FROM @op; SELECT * FROM dbo.GuidPk;</code>
La clause OUTPUT
redirige la valeur ColGuid
insérée dans la table temporaire @op
. Par la suite, l’interrogation de @op
récupère directement le GUID nouvellement inséré. Cette méthode est fiable et évite le besoin de variables.
Lectures complémentaires :
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!