正确获得最新插入行的标识
来源:互联网 发布:英雄联盟ssg知乎 编辑:程序博客网 时间:2024/04/29 09:15
这样的需求很常见,下面就来介绍Transact-SQL提供的三种获取标识的方法。
(1) IDENT_CURRENT 返回为某个会话和用域中的指定表生成的最新标识值。
(2) @@IDENTITY 返回为跨所有作用域的当前会话中的某个表生成的最新标识值。
(3) SCOPE_IDENTITY 返回为当前会话和当前作用域中的某个表生成的最新标识值。
(1) IDENT_CURRENT 返回为某个会话和用域中的指定表生成的最新标识值。
语法:IDENT_CURRENT( 'table_name' )
说明:通过IDENT_CURRENT获取的最新标识是不管会话和作用域的,也就是说无论什么人向指定的表插入新行,它只获取该表最新行的标识。
示例:打开两个查询窗口(两个会话),分别在这两个查询窗口中写上INSERT语句,并插入到同一张表。
在任意一个查询窗口中写上SELECT IDENT_CURRENT( 'table_name' );
结果发现SELECT的返回值是该表最后一次插入时生成的标识。
备注:如果你想获取自己刚才插入的行标识,建议不要用这个方法;
如果你想获取整个表最新插入的行标识,建议用这个方法;
exp:
insert into test1 (content) values ('value')
SELECT @@identity
(2) @@IDENTITY 返回为跨所有作用域的当前会话中的某个表生成的最新标识值。
语法:@@IDENTITY
说明:首先@@IDENTITY获取的是当前会话,也就是说不会获取别人插入的新行标识。它和SCOPE_IDENTITY唯一不同的区别在于,@@IDENTITY是跨作用域的,而SCOPE_IDENTITY是当前作用域。
示例:两个表A和B,表A建立触发器,一旦增加新记录,触发器会向表B添加一条新记录。
向表A添加一条记录。
获取最新标识 SELECT @@IDENTITY;
结果发现返回的是表B中新行的标识。
备注:如果你的当前会话中仅对一个表新增,那么完全可以用@@IDENTITY获取最新插入的行标识。
如果有触发器他插入,则不能使用该方法。
exp:
insert into test1 (content) values ('value')
SELECT IDENT_CURRENT('test1')
(3) SCOPE_IDENTITY 返回为当前会话和当前作用域中的某个表生成的最新标识值。
语法:SCOPE_IDENTITY()
说明:该方法获取最新行标识和@@IDENTITY 类似。只是作用域是当前作用域。
示例:方法同(2);
结果发现返回值是表A新增的行标识。
示例:打开两个查询窗口(两个会话),分别在这两个查询窗口中写上INSERT语句,并插入到同一张表。
在任意一个查询窗口中写上SELECT SCOPE_IDENTITY();
结果发现SELECT的返回值是该窗口所插入的那一行的标识。
备注:如果你要获取最新插入的行标识,这个方法是最可靠的
exp:
nsert into test1 (content) values ('value')
SELECT scope_identity()
- 正确获得最新插入行的标识
- T-Sql返回最新插入行的标识
- T-Sql返回最新插入行的标识
- SQL获取新插入行的标识数
- sql声明变量和获取最新插入行的ID方法
- Handsontable不允许插入行的处理
- mysql 获取刚插入行的id
- 获取 刚才插入行的 id
- 获得session的标识
- insertAdjacentHTML动态插入行
- TABLE下插入行
- insertAdjacentHTML动态插入行
- insertAdjacentHTML动态插入行
- POI实现插入行
- insertAdjacentHTML动态插入行
- POI 插入行
- NPOI插入行
- 在文件的头部插入行的方法
- 关于博客在教学中的应用课题研究的一点小资料(2)。。
- 关于博客在教学中的应用课题研究的一点小资料(2)。。
- 关于博客在教学中的应用课题研究的一点小资料(2)。。
- 在使用 ADO.NET 导出 Excel 文件时,设置 IMEX=1 仍不能导出所有数据的解决办法
- smarty truncate 截取字符串長度
- 正确获得最新插入行的标识
- 萧月雨
- 升级android sdk时A folder failed to be renamed or moved 的错误
- 深入Java关键字null
- 常用代码片段(一) - 加载网络图片
- magento开始办官方培训班了,课程价格真给力啊
- Android Socket网络通信
- .NET WebService 调试,允许通过IE输入参数的设置,允许Perl以Post方式调用的配置项
- ibator 工具补充类,自动生成Manager接口,ManagerImpl类