博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于scope_identity()与 @@IDENTITY
阅读量:6547 次
发布时间:2019-06-24

本文共 509 字,大约阅读时间需要 1 分钟。

参考:https://msdn.microsoft.com/zh-cn/library/ms190315.aspx

 

scope_identity()涉及作用域,

作用域定义:
 一个范围是一个模块:存储过程、触发器、函数或批处理。 因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。

 @@IDENTITY 返回一个会话内最后一次添加的Identity

 在企业管理器中开一个新建查询(标签页)表示建立了一个新的会话,在这个标签页内输入的所有sql语句是一个会话

上图中,不管什么时候单独选择后面2句执行,结果都是一样的

 

 EF中每次执行查询或者Ctx.SaveChanges()会重置exec sp_reset_connection ,导致每次执行作为不同会话存在。

 

上面程序的返回值是null,因为ExecuteStoreQuery是另外的会话。

 

 

如果语句和事务失败,它们会更改表的当前标识,从而使标识列中的值出现不连贯现象。 即使未提交试图向表中插入值的事务,也永远无法回滚标识值。 例如,如果因 IGNORE_DUP_KEY 冲突而导致 INSERT 语句失败,表的当前标识值仍然会增加。

转载地址:http://sgedo.baihongyu.com/

你可能感兴趣的文章
Python数据分析工具包:Pandas
查看>>
C#结构体指针的定义及使用详解
查看>>
ASP.NET AJAX(控件扩展器、工具包详述)
查看>>
ELMAH在ASP.NET MVC中的使用
查看>>
获取Repeter的Item和ItemIndex
查看>>
table极细边框的实现
查看>>
autotools工具使用
查看>>
Mac与VMware虚拟机之间无法复制/粘贴的解决方法
查看>>
.net反射详解
查看>>
ASP.net Web API的模块依赖关系
查看>>
MySQL的表分区
查看>>
不同dll相同Type.FullName引发的问题
查看>>
云计算平台简介(App Engine)
查看>>
servlet过滤器2 解决用户非法在线 filter
查看>>
gene6的几个使用技巧
查看>>
Hibernate--基于注解方式的各种映射全面总结
查看>>
zoj 1107 FatMouse and Cheese(动态规划 记忆化搜索)
查看>>
Node.js+Express on IIS
查看>>
图片、浏览器-HTML5/CSS3系列教程:使用SVG图片-by小雨
查看>>
对象生成Hibernate框架简述
查看>>