插入后使用@@ identity

时间:2011-02-07 14:05:32

标签: sql insert identity

我有一个带有sql server的插入sql然后直接调用select @@ identity,我试图使用存储过程的身份id,这是否可能

例如

insert into ...
select @@identity

EXEc add 'ss' @@identity

感谢 一个

编辑---

我基本上想要使用我现在正在使用的id的值

SELECT SCOPE_IDENTITY();

在插入后直接用于查询。

2 个答案:

答案 0 :(得分:5)

是的,这是可能的,尽管使用SCOPE_IDENTITY()可能会更好。

请参阅this关于获取插入行标识的最佳方法的问题。

答案 1 :(得分:3)

在评论中回答(现已删除)的问题......

可以直接在存储过程调用的参数列表中使用@@IDENTITY。对于SCOPE_IDENTITY()(如果稍后将一个触发器添加到表中,您应该使用它来避免问题)不允许使用此语法,您需要使用如下的中间变量。

declare @id int

insert into ...

set @id = SCOPE_IDENTITY() 

EXEC AddEmp2 0,@id