Maison >base de données >tutoriel mysql >Comment récupérer une clé primaire GUID nouvellement insérée dans SQL Server sans variables ?

Comment récupérer une clé primaire GUID nouvellement insérée dans SQL Server sans variables ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-24 12:21:08182parcourir

How to Retrieve a Newly Inserted GUID Primary Key in SQL Server Without Variables?

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!

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