插入后使用@@identity

发布于 2024-10-16 19:00:54 字数 293 浏览 1 评论 0原文

我有一个带有 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

是伱的 2024-10-23 19:00:54

是的,这是可能的,尽管您最好使用 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.

壹場煙雨 2024-10-23 19:00:54

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

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

declare @id int

insert into ...

set @id = SCOPE_IDENTITY() 

EXEC AddEmp2 0,@id

Answering the (now deleted) question in the comments...

It is possible to use @@IDENTITY directly in the parameter list of the stored procedure call. For SCOPE_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.

declare @id int

insert into ...

set @id = SCOPE_IDENTITY() 

EXEC AddEmp2 0,@id
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文