从存储过程插入返回GUID

ImG*_*reg 2 stored-procedures guid primary-key sql-server-2008

我有一些存储过程,我插入到我的SQL Server数据库中.我想返回此GUID以用于将来的插入,或者我发现它用作它.

我知道我可以在过程中生成GUID并从中返回它,但是我想避免在那里生成它,因为它具有主键(guid)行的默认值.我记得像SCOPE_IDENTITY这样的函数用于返回刚才使用的标识列,与此类似的GUID是什么?

感谢帮助!谢谢 :)

Mik*_*son 5

您可以使用insert语句中的output子句.

像这样从SP返回结果集.ID是具有默认newid()的uniqueidentifier.

insert into YourTable(Col1)
output inserted.ID 
values (1)
Run Code Online (Sandbox Code Playgroud)

或者捕获到表变量并在此之后执行您需要的操作.

declare @T table(ID uniqueidentifier)

insert into YourTable(Col1)
output inserted.ID into @T 
values (1)

select *
from @T
Run Code Online (Sandbox Code Playgroud)