Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SCOPE_IDENTITY() für GUIDs?

Sie können die GUID zurückerhalten, indem Sie OUTPUT verwenden. Dies funktioniert auch, wenn Sie mehrere Datensätze einfügen.

CREATE TABLE dbo.GuidPk (
    ColGuid uniqueidentifier NOT NULL DEFAULT NewSequentialID(),
    Col2    int              NOT NULL
)
GO

DECLARE @op TABLE (
    ColGuid uniqueidentifier
)

INSERT INTO dbo.GuidPk (
    Col2
)
OUTPUT inserted.ColGuid
INTO @op
VALUES (1)

SELECT * FROM @op

SELECT * FROM dbo.GuidPk

Referenz:Untersuchung der OUTPUT-Klausel von SQL 2005