Abrufen des neu eingefügten Guid -Primärschlüssels in SQL Server ohne Variablen
Mit GUIDs als Primärschlüssel müssen häufig die neu eingefügten GUID abgerufen werden, ohne Variablen zu verwenden. Dieser Artikel zeigt, wie dies effizient erreicht werden kann.
Warum Scope_identity () nicht für Guids
funktioniert SCOPE_IDENTITY()
ist für das Abrufen von Richtlinien ungeeignet, da es nur mit integer-basierten Identitätsspalten funktioniert.
Die Lösung: Die Ausgangsklausel
Die OUTPUT
-Klausel bietet eine saubere und effiziente Lösung, auch wenn mehrere Zeilen einfügen.
<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>
Die OUTPUT
-Klausel leitet den eingefügten Wert ColGuid
in die temporäre Tabelle @op
um. Anschließend wird die neu eingefügte Guid direkt abfragen. Diese Methode ist zuverlässig und vermeidet die Notwendigkeit von Variablen. @op
Weitere Lesen:
Das obige ist der detaillierte Inhalt vonWie rufe ich einen neu eingefügten Guid -Primärschlüssel in SQL Server ohne Variablen ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!