我有一个带有sql server的插入sql然后直接调用select @@ identity,我试图使用存储过程的身份id,这是否可能
例如
insert into ...
select @@identity
EXEc add 'ss' @@identity
感谢 一个
编辑---
我基本上想要使用我现在正在使用的id的值
SELECT SCOPE_IDENTITY();
在插入后直接用于查询。
答案 0 :(得分:5)
是的,这是可能的,尽管使用SCOPE_IDENTITY()
可能会更好。
请参阅this关于获取插入行标识的最佳方法的问题。
答案 1 :(得分:3)
在评论中回答(现已删除)的问题......
可以直接在存储过程调用的参数列表中使用@@IDENTITY
。对于SCOPE_IDENTITY()
(如果稍后将一个触发器添加到表中,您应该使用它来避免问题)不允许使用此语法,您需要使用如下的中间变量。
declare @id int
insert into ...
set @id = SCOPE_IDENTITY()
EXEC AddEmp2 0,@id