SCOPE_IDENTITY()
来源:互联网 发布:大数据软件开发 编辑:程序博客网 时间:2024/06/09 04:28
@@IDENTYITY,SCOPE_IDENTITY的主要区别:在有触发器中而且触发器的内容里面含有插入标识符的操作的时候,@@IDENTITY则返回的是触发器里面新插入标识符的值而SCOPE_IDENTITY则是不变,即离该语句上面最近的标识符的值。
SCOPE_IDENTITY()测试用例:
--会话1,第一条返回1,第二条还是返回1,可得知SCOPE_IDENTITY()获取到的是当前会话最近的插入成功的标识符的值INSERT INTO t(name) values('插入一条') ;SELECT SCOPE_IDENTITY();INSERT INTO t SELECT '0个影响' FROM t WHERE 1=2SELECT SCOPE_IDENTITY()
--会话1,返回批量插入的最后一个标识符的值(这里是4),所以这里max(id)返回的值和SCOPE_IDENTITY()的值是相等的INSERT INTO t(name) values('插入一条') ,('插入2条') ,('插入3条')SELECT MAX(ID) FROM t;SELECT SCOPE_IDENTITY();
-- 开启事务,然后回滚,SCOPE_IDENTITY()值不会消失 (这里SCOPE_IDENTITY()依旧会显示值,即使没有插入到数据库里面)BEGIN TRANINSERT INTO t(name) values('插入xx条')SELECT SCOPE_IDENTITY()ROLLBACK TRANselect * from t where name='插入xx条'
--给T表添加一个触发器,触发器功能是给t2表(有主键,未设置标识符)插入一条记录,执行后返回的是T表的值。INSERT INTO t(name) values('插入一条')SELECT SCOPE_IDENTITY()SELECT MAX(ID) FROM T2;
--给T表添加一个触发器,触发器功能是给t2表(无主键,未设置标识符)插入一条记录,执行后返回的是T表的值。INSERT INTO t(name) values('插入一条')SELECT SCOPE_IDENTITY()SELECT MAX(ID) FROM T2;
--给T表添加一个触发器,触发器功能是给t2表(有主键,有设置标识符)插入一条记录,执行后返回的是T表的值(这个是和@@IDENTITY根本的不同,@@IDENTITY返回的是T2表的标识符的值)INSERT INTO t(name) values('插入一条')SELECT SCOPE_IDENTITY()SELECT MAX(ID) FROM T2;
--给T表添加一个触发器,触发器功能是给t2表(无主键,有设置标识符)插入一条记录,执行后返回的是T表的值(这个是和@@IDENTITY根本的不同,@@IDENTITY返回的是T2表的标识符的值)INSERT INTO t(name) values('插入一条')SELECT SCOPE_IDENTITY()SELECT MAX(ID) FROM T2;
BEGIN TRAN--获取会话级别无触发器情况下的最近批处理的标识符INSERT INTO T(name) VALUES('插入一条数据')SELECT MAX(ID) FROM T;SELECT SCOPE_IDENTITY();INSERT INTO T(name) VALUES('插入一条数据')SELECT MAX(ID) FROM T;SELECT SCOPE_IDENTITY();COMMIT TRAN
BEGIN TRAN--获取会话级别无触发器情况下的最近批处理的标识符INSERT INTO T(name) VALUES('插入一条数据')SELECT MAX(ID) FROM T;SELECT SCOPE_IDENTITY();INSERT INTO T(name) VALUES('插入一条数据')SELECT MAX(ID) FROM T;SELECT SCOPE_IDENTITY();COMMIT TRAN
参考资料:https://msdn.microsoft.com/zh-cn/library/ms190315(v=sql.90).aspx
阅读全文
0 0
- SCOPE_IDENTITY
- SCOPE_IDENTITY
- SCOPE_IDENTITY
- SCOPE_IDENTITY
- SCOPE_IDENTITY()
- SCOPE_IDENTITY介绍
- SELECT SCOPE_IDENTITY()
- SCOPE_IDENTITY()使用方法
- select SCOPE_IDENTITY()
- select SCOPE_IDENTITY()
- sql SCOPE_IDENTITY()
- SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY
- IDENT_CURRENT ,@@IDENTITY, SCOPE_IDENTITY
- SCOPE_IDENTITY 和 @@IDENTITY
- SQL @@Identity ,Scope_identity() 区别
- @@IDENTITY and scope_identity()
- SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY
- select SCOPE_IDENTITY()用法
- react配合antd
- 10道C++输出易错笔试题收集
- js的map和set
- Cocos2dx-lua安装并使用
- 多态的学习笔记
- SCOPE_IDENTITY()
- 递归、
- 微信小程序下拉刷新界面
- Yii基础笔记
- SA的性质
- 浏览器兼容性问题解决方案 · 总结
- 两圆相交求相交面积
- window下nginx访问不到静态资源问题
- 软件测试面试题