插入后使用@@identity
我有一个带有 sql server 的插入 sql,然后直接调用 select @@identity,我正在尝试将身份 id 与存储过程一起使用,这是否可能,
例如
insert into ...
select @@identity
EXEc add 'ss' @@identity
谢谢 编辑
---
获得的 id 值
我基本上想使用我现在通过SELECT SCOPE_IDENTITY()
;插入后立即在查询中使用。
I have an insert sql with sql server and then call select @@identity straight after, i am trying to use the identity id with a stored procedure, is this even possible
eg
insert into ...
select @@identity
EXEc add 'ss' @@identity
thanks
a
edit---
i basically want to use the value of the id which i'm getting now with
SELECT SCOPE_IDENTITY() ;
to use in a query straight after the insert.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,这是可能的,尽管您最好使用
SCOPE_IDENTITY( )
。请参阅这个有关获取身份的最佳方式的问题插入行的。
Yes, this is possible, though you are probably better off using
SCOPE_IDENTITY()
.See this SO question about the best way to get the identity of an inserted row.
回答评论中的(现已删除)问题...
可以直接在存储过程调用的参数列表中使用
@@IDENTITY
。对于SCOPE_IDENTITY()
(您应该使用它来避免稍后将触发器添加到表中时出现问题),不允许使用此语法,您需要使用如下中间变量。Answering the (now deleted) question in the comments...
It is possible to use
@@IDENTITY
directly in the parameter list of the stored procedure call. ForSCOPE_IDENTITY()
(which you should be using to avoid problems if a trigger is later added to the table) this syntax is not allowed you need to use an intermediate variable as below.