Bạn có thể sử dụng chức năng OUTPUT để trả lại các giá trị mặc định thành một tham số.
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
Tuy nhiên, tôi phải nói rằng, hãy cẩn thận khi sử dụng một số nhận dạng duy nhất làm khóa chính. Việc lập chỉ mục trên GUID có hiệu suất cực kỳ kém vì mọi guids mới được tạo sẽ phải được chèn vào giữa chỉ mục và chỉ được thêm vào cuối cùng. Có chức năng mới trong SQL2005 cho NewSequentialId (). Nếu không bắt buộc phải che khuất với Guids của bạn thì đó là một giải pháp thay thế khả thi.