Sie können die OUTPUT-Funktion verwenden, um die Standardwerte wieder in einen Parameter zurückzugeben.
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
Ich muss jedoch sagen, seien Sie vorsichtig, wenn Sie einen eindeutigen Bezeichner als Primärschlüssel verwenden. Das Indizieren auf einer GUID ist eine extrem schlechte Leistung, da alle neu generierten GUIDs in die Mitte eines Index eingefügt und selten nur am Ende hinzugefügt werden müssen. Es gibt eine neue Funktionalität in SQL2005 für NewSequentialId(). Wenn bei Ihren Guids keine Unklarheit erforderlich ist, ist dies eine mögliche Alternative.