Pomocí funkce OUTPUT můžete vrátit výchozí hodnoty zpět do parametru.
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
Musím však říci, že buďte opatrní při používání jedinečného identifikátoru jako primárního klíče. Indexování na GUID je extrémně špatný výkon, protože nově vygenerované GUID bude nutné vložit doprostřed indexu a jen zřídka je přidat na konec. V SQL2005 je nová funkce pro NewSequentialId(). Pokud u vašich průvodců není vyžadována temnota, pak je to možná alternativa.