Можете да използвате функцията OUTPUT, за да върнете стойностите по подразбиране обратно в параметър.
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
Трябва да кажа обаче, внимавайте да използвате уникален идентификатор като първичен ключ. Индексирането на GUID е изключително лошо изпълнение, тъй като всички новогенерирани guid ще трябва да бъдат вмъкнати в средата на индекс и рядко просто да се добавят в края. Има нова функционалност в SQL2005 за NewSequentialId(). Ако неизвестността не се изисква с вашите Guids, тогава това е възможна алтернатива.