@@IDENTITY详细测试
今天看数据库SQL,有发现存储过程中有使用到SCOPE_IDENTITY()这个函数,后来问了下谷歌大婶,搜到一个比较重要的博客,链接如下:https://dotblogs.com.tw/kkman021/2012/06/27/73096
得知SCOPE_IDENTITY()和@@IDENTITY根本的不同,才知道自己还需要学习很多
@@Identit是会话级别作用域, 下面是针对@@IDENTITY做的测试例子,特此记录. 如有欠缺各位大神分享,共同进步:)
--会话1,第一条返回1,第二条还是返回1,可得知@@IDENTITY获取到的是当前会话最近的插入成功的标识符的值
INSERT INTO t(name) values('插入一条') ;
SELECT @@IDENTITY;
INSERT INTO t SELECT '0个影响' FROM t WHERE 1=2
SELECT @@IDENTITY

--会话1,返回批量插入的最后一个标识符的值(这里是4),所以这里max(id)返回的和@@IDENTITY的值是相等的
INSERT INTO t(name) values('插入一条') ,('插入2条') ,('插入3条')
SELECT MAX(ID) FROM t;
SELECT @@IDENTITY

-- 开启事务,然后回滚,@@IDENTITY值不会消失 (这里@@IDENTITY依旧会显示值,即使没有插入到数据库里面)
BEGIN TRAN
INSERT INTO t(name) values('插入xx条')
SELECT @@IDENTITY;
ROLLBACK TRAN
select * from t where name='插入xx条'

--会话1,给T表添加了触发器(给t2(有主键,未设置标识符)插入一条数据),这个SQL执行以后,返回的是T表新增数据的标识符。,
INSERT INTO t(name) values('插入一条')
SELECT @@IDENTITY SELECT MAX(ID) FROM T2;

--会话1,给T表添加了触发器(给t2(无主键,未设置标识符)插入一条数据),这个SQL执行以后,返回的是T表新增数据的标识符。,
INSERT INTO t(name) values('插入一条')
SELECT @@IDENTITY SELECT MAX(ID) FROM T2;

--会话1,给T表添加了触发器(给t2(无主键,有设置标识符)插入一条数据),这个SQL执行以后,返回的是T2表新增数据的标识符。,
INSERT INTO t(name) values('插入一条')
SELECT @@IDENTITY SELECT MAX(ID) FROM T2;

--会话1,给T表添加了触发器(给t2(有主键,有标识符)插入一条数据),这个SQL执行以后,返回的是T2表新增数据的标识符。
INSERT INTO t(name) values('插入一条')
SELECT @@IDENTITY

BEGIN TRAN
--获取会话级别无触发器情况下的最近批处理的标识符
INSERT INTO T(name) VALUES('插入一条数据')
SELECT MAX(ID) FROM T;
SELECT @@IDENTITY; INSERT INTO T(name) VALUES('插入一条数据')
SELECT MAX(ID) FROM T;
SELECT @@IDENTITY;
COMMIT TRAN

BEGIN TRAN
--获取会话级别有触发器情况下的最近批处理的标识符
INSERT INTO T(name) VALUES('插入一条数据')
SELECT MAX(ID) FROM T;
SELECT @@IDENTITY; INSERT INTO T(name) VALUES('插入一条数据')
SELECT MAX(ID) FROM T;
SELECT @@IDENTITY;
COMMIT TRAN

结论:
1. @@IDENTITY是作用域会话级别的,
2. @@IDENTITY取的列标识符的列, 因为每个表只能 有一个列设置为自动增长
参考链接:https://technet.microsoft.com/zh-cn/library/ms187342(SQL.90).aspx
@@IDENTITY详细测试的更多相关文章
- [转]IIS的各种身份验证详细测试
本文转自:http://www.cnblogs.com/chnking/archive/2007/11/20/965553.html#_Toc183326163 一. IIS的身份验证概述 1. ...
- 根据 Promise/A+ 和 ES6 规范,实现 Promise(附详细测试)
Promise 源码 https://github.com/lfp1024/promise promise-a-plus const PENDING = 'PENDING' const REJECTE ...
- Spark1.5.1的安装与部署 每一步详细测试截图
转载或借鉴请注明转自 http://www.cnblogs.com/FG123/p/5101733.html 谢谢! 1.安装Spark之前需要先安装Java,Scala及Python(个人喜欢用p ...
- SQL Server AlwaysOn 集群 关于主Server IP与Listener IP调换的详细测试
1. 背景 SQL Server 搭建AlwaysOn后,我们就希望程序连接时使用虚拟的侦听IP(Listener IP),而不再是主Server 的IP.如果我们有采用中间件,则可以在配置中,直接用 ...
- Percona XtraBackup 关于 MySQL备份还原的详细测试
一. Percona XtraBackup 的优点. (1)无需停止数据库进行InnoDB热备: (2)增量备份MySQL: (3)流压缩传输到其它服务器: (4)在线移动表: (5)能够比较容易地创 ...
- Linux磁盘的性能详细测试办法
# 测试写入20Gb文件sync && time -p bash -c "(dd if=/dev/zero of=test.dd bs=1000K count=20000; ...
- CDH安装详细测试正确
1. CDH简介 简单来说,Cloudera Manager是一个拥有集群自动化安装.中心化管理.集群监控.报警功能的一个工具(软件),使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到 ...
- 详细讲解 A/B 测试关键步骤,快来检查下还有哪些疏漏的知识点
作为一种对照实验方法,A/B 测试通过比较两个 (或多个) 不同版本之间的差异来验证假设是否正确.该方法将特定测试组从实验其余部分中独立出来,从而得出可靠结果.在被测人不知情且测试场景真实的情况下,A ...
- html5中manifest特性测试
测试环境和工具 chromium 18.0.1025.151 (开发编译版 130497 Linux) Ubuntu 11.04 一.测试内容 1.A页面manifest缓存的js文件,B页面不 ...
随机推荐
- Chris Richardson微服务翻译:构建微服务之微服务架构的进程通讯
Chris Richardson 微服务系列翻译全7篇链接: 微服务介绍 构建微服务之使用API网关 构建微服务之微服务架构的进程通讯(本文) 微服务架构中的服务发现 微服务之事件驱动的数据管理 微服 ...
- Java编程思想读书笔记(二)【一切都是对象】
begin 2018年1月9日17:06:47 第二章 一切都是对象 Java语言假设我们只进行面向对象的程序设计. 2.1 用引用操纵对象 每种编程语言都有自己的操纵内存元素的方式 操纵内存元素的方 ...
- ajax 处理请求回来的数据
比如接口 /test, 请求方式get, 请求过来的数据要处理在container 里,如下代码 $.get("/test", {}, function(result){ $(&q ...
- laravel 生成 key
把 .env.example 文件 复制并重命名为 .env 文件 命令行运行 php artisan key:generate php artisan key:generate
- div 初始高度,并随内容高度变化
前几天做个邮箱系统,其中在内容的div设置了高度为200px; 可是在内容大于200高度后就出现了内容的溢出. 如图: 查完资料够才知道css有个min-height; 设置div的初始化高度,设置属 ...
- [51nod1206]Picture
给你一坨矩形,问这些矩形组成的所有多边形的周长之和. 分别求竖着的边和横着的边. 离散化后线段树,维护当前行(或者列)有多少没在多边形里的,添加矩形就变成添加.删除线段. 每次加线段或删线段时累加一下 ...
- 2017ecjtu-summer training #1 UVA 12050
A palindrome is a word, number, or phrase that reads the same forwards as backwards. For example, th ...
- ACM_素数筛选
/* *素数筛法,判断小于MAXN的数是不是素数. *notprime是一张表,为false表示是素数,true表示不是素数 */ const int MAXN = 1000010; bool not ...
- solr6.5的安装与配置
环境介绍 solr 6.5 tomcat8 jdk1.8 win7系统 一.下载solr安装包 下载地址:http://www.apache.org/dyn/closer.lua/lucene/sol ...
- 《JavaScript设计模式与开发实践》知识点笔记
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC" } p.p2 { margin: 0.0px ...