Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SCOPE_IDENTITY() per i GUID?

È possibile recuperare il GUID utilizzando OUTPUT. Funziona anche quando inserisci più record.

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

Riferimento:Esplorazione della clausola OUTPUT di SQL 2005