博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
@@IDENTITY,IDENT_CURRENT,SCOPE_IDENTITY,IDENT_INCR,IDENT_SEED详解
阅读量:6912 次
发布时间:2019-06-27

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

@@IDENTITY 返回最后插入的标识值的系统函数。

IDENT_CURRENT( 'table_name' ) 返回为指定的表或视图生成的最后一个标识值。所生成的最后一个标识值可以针对任何会话和任何作用域。

SCOPE_IDENTITY 返回插入到同一作用域中的标识列内的最后一个标识值。一个范围是一个模块:存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。

IDENT_INCR ( 'table_or_view' ) 返回增量值(返回形式为 numeric (@@MAXPRECISION,0)),该值是在带有标识列的表或视图中创建标识列时指定的。

 

IDENT_CURRENT 类似于 SQL Server 2000 标识函数 SCOPE_IDENTITY 和 @@IDENTITY。这三个函数都返回最后生成的标识值。但是,上述每个函数中定义的“最后”的作用域和会话有所不同。

  • IDENT_CURRENT 返回为某个会话和用域中的指定表生成的最新标识值。

  • @@IDENTITY 返回为跨所有作用域的当前会话中的某个表生成的最新标识值。

  • SCOPE_IDENTITY 返回为当前会话和当前作用域中的某个表生成的最新标识值。

如果 IDENT_CURRENT 值为 NULL(因为表从未包含行或已被截断),IDENT_CURRENT 函数将返回种子值。

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

请谨慎使用 IDENT_CURRENT 来预报下一个生成的标识值。由于其他会话执行的插入,实际生成的值可能与 IDENT_CURRENT 加上 IDENTITY_INCR 不同。

本文转自cnn23711151CTO博客,原文链接:http://blog.51cto.com/cnn237111/476643 ,如需转载请自行联系原作者

你可能感兴趣的文章
【 58沈剑 架构师之路】InnoDB七种锁——共享/排它锁、意向锁、插入意向锁
查看>>
终究未能留下,秦致被动离去,汽车之家已变天
查看>>
wxWidgets第一课 wx/wx.h解决头文件包含问题
查看>>
论Mysql5.7.13架构组成之物理文件
查看>>
C/C++笔试题目大全
查看>>
呼叫转移XCAP log的查看
查看>>
JAVA--------抽象类
查看>>
我的友情链接
查看>>
动画状态切换
查看>>
linux 下的GPT分区
查看>>
线程同步
查看>>
Nginx 配置SSL证书
查看>>
每日总结复习
查看>>
iPhone 开发过程中的一些小技术的总结
查看>>
android 资料
查看>>
ThreadLocal 那点事儿
查看>>
Spark源码分析调试环境搭建
查看>>
手把手教你搭建LyncServer2013之命令行持久聊天室和聊天室BUG(十五)
查看>>
全栈工程师就是一棵歪脖子树
查看>>
计算机基础
查看>>