U kunt de OUTPUT-functionaliteit gebruiken om de standaardwaarden terug te zetten in een 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
Ik moet echter zeggen dat je voorzichtig moet zijn met het gebruik van een unieke identifier als primaire sleutel. Indexeren op een GUID is extreem slechte prestatie, aangezien nieuw gegenereerde GUID's in het midden van een index moeten worden ingevoegd en zelden aan het einde worden toegevoegd. Er is nieuwe functionaliteit in SQL2005 voor NewSequentialId(). Als onduidelijkheid niet vereist is bij uw gidsen, dan is dit een mogelijk alternatief.