Du kan använda OUTPUT-funktionen för att återställa standardvärdena till en parameter.
CREATE TABLE MyTable
(
MyPK UNIQUEIDENTIFIER DEFAULT NEWID(),
MyColumn1 NVARCHAR(100),
MyColumn2 NVARCHAR(100)
)
DECLARE @myNewPKTable TABLE (myNewPK UNIQUEIDENTIFIER)
INSERT INTO
MyTable
(
MyColumn1,
MyColumn2
)
OUTPUT INSERTED.MyPK INTO @myNewPKTable
VALUES
(
'MyValue1',
'MyValue2'
)
SELECT * FROM @myNewPKTable
Jag måste dock säga, var försiktig med att använda en unik identifierare som primärnyckel. Indexering på en GUID är extremt dålig prestanda eftersom alla nygenererade guider måste infogas i mitten av ett index och sällan bara läggas till i slutet. Det finns ny funktionalitet i SQL2005 för NewSequentialId(). Om otydlighet inte krävs med dina guider är det ett möjligt alternativ.