你的位置:首页 > 软件开发 > 数据库 > 在output 子句和 scope_identity() 混合使用的时候的注意事项

在output 子句和 scope_identity() 混合使用的时候的注意事项

发布时间:2016-10-13 15:00:04
无意睹到一篇旧文档SR0008:考虑使用 SCOPE_IDENTITY 代替 @@IDENTITY :https://msdn.microsoft.com/zh-cn/library/dd172121(v=vs.100).aspx日常开发,我们如果在插入记录的同时需要返回插入 ...

无意睹到一篇旧文档

SR0008:考虑使用 SCOPE_IDENTITY 代替 @@IDENTITY :https://msdn.microsoft.com/zh-cn/library/dd172121(v=vs.100).aspx

日常开发,我们如果在插入记录的同时需要返回插入的IdentityID,通常我们会使用

@@Identity 和使用函数 Scope_identity()

当然在并发的情况下,使用scope_identity会比使用@@Identity稳定。起码我不用考虑触发器的影响。

但是如果在insert 的同时使用了insert into xxx output into yyy 这种语法的话。就要小心scope_identity返回的值。那将会是yyy表的identity值哦。

下面我们来做一个实验

CREATE TABLE aaa(ID INT IDENTITY,Col VARCHAR(50))CREATE TABLE bbb(ID INT IDENTITY,Col VARCHAR(50))INSERT INTO dbo.aaa ( Col )VALUES ( 'aaa' )INSERT INTO dbo.aaa ( Col ) OUTPUT Inserted.Col INTO bbb(Co1) VALUES ( 'aaa' )SELECT SCOPE_IDENTITY()

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:在output 子句和 scope_identity() 混合使用的时候的注意事项

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录