当在表中心插入一行时,SQL Server会根据表中当前的标识值和增量生成一个新的标识值。如果需要获得这个新生成的标识值,可以查询:@@identity和SCOPE_IDENTITY()。 @@identity函数式从以前版本(甚至比SQL Server 2000还要早)遗留下来的功能,它返回回话最后生成的一个标识值,而不考虑任何作用域。SCOPE_IDENTITY()返回当前作用域(例如,同意存储过程)内回话生成的最后一个标识值。除非是一些非常特殊不需要关心作用域的情况,否则,应该总是使用SCOPE_IDENTITY()函数。

@@identity和SCOPE_IDENTITY都是返回当前回话生成的最后一个标识值。二者不受其他回话中插入操作的影响。

如果想知道一个表当前的标识值(最后生成的值)而不考虑作用域,应该使用IDENT_CURRENT函数并将表名作为其输入参数。

如果导致当前标识值发生变化的INSERT语句插入失败,或者是该语句所在的事物(transaction)发生了回滚(roll back),表中当前标识值的变化并不会被撤销。所以,当你不在意标识值之前有间隔时,应该只依赖标识属性自动生成标识值;否则,应该考虑使用自己的替代机制。

如果为INSERT操作涉及的表设置了一个名为IDENTITY_INSERT的会话选项,SQL Server就可以允许在INSERT语句中显式地指定标识列的取值。不过,没有任何选项可以对标识列进行更新。

SET IDENTITY_INSERT tbl_name ON;

IDENTITY属性相关推荐

  1. 10. IDENTITY属性使用小结

    原文:10. IDENTITY属性使用小结 从SQL Server 2012开始有了Sequence,简单用列如下: CREATE SEQUENCE TestSeq START WITH 1 INCR ...

  2. sqlServer2008 自增列不能直接修改,必须将原有staff_no列删除,然后重新添加一列具有identity属性的

    CREATE TABLE a_gztz_staff --员工表 ( staff_no int identity(1,1), --员工编号 自动递增 a_gzt_staff_pk varchar(120 ...

  3. IDENTITY属性的使用详解

    IDENTITY属性的使用 1.创建查看IDENTITY 创建 IF OBJECT_ID('test','U') IS NOT NULLDROP TABLE testGOCREATE TABLE te ...

  4. sqlserver IDENTITY属性使用小结

    原文参考自 https://www.cnblogs.com/seusoftware/p/3804333.html  有删改,补充了一部分原文没看懂的. 从SQL Server 2012开始有了Sequ ...

  5. Sql Server插入数据并返回自增ID,@@IDENTITY,SCOPE_IDENTITY和IDENT_CURRENT的区别

    预备知识:SQLServer的IDENTITY关键字 IDENTITY关键字代表的是一个函数,而不是identity属性.在access里边没有这个函数,所以在access不能用这个语句.语法:ide ...

  6. Replication的犄角旮旯(五)--关于复制identity列

    Replication的犄角旮旯(五)--关于复制identity列 原文:Replication的犄角旮旯(五)--关于复制identity列 <Replication的犄角旮旯>系列导 ...

  7. java identity_仔细研究Java Identity API

    java identity 在深入探讨之前,让我们看一下有关Java Identity API JSR 351的一些快速事实. 这仍在进行中. . . JSR是什么时候发起的? 该JSR在2011年1 ...

  8. Java:从Java 8开始受益于内联类属性

    希望在几年内,Java将具有"内联类"功能,该功能可以解决Java当前状态下的许多挑战. 阅读本文并学习如何立即使用Java 8或更高版本,并且仍将受益于即将出现的内联对象数组的一 ...

  9. 仔细研究Java Identity API

    在深入探讨之前,让我们看一下有关Java Identity API JSR 351的一些快速事实. 这仍在进行中. . . JSR是什么时候发起的? 该JSR在2011年10月通过了批准投票,随后在2 ...

最新文章

  1. C#教程之自己动手写映射第四节[封装删除]
  2. Linux7如何手动建库,Centos 7系列删除数据库并重新安装
  3. jmeter 自定义参数_jmeter参数化并在jenkins上执行
  4. 图片日志:深拷贝和浅拷贝的区别/序列化及反序列化
  5. clob和blob是不是可以进行模糊查询_你知道什么是 MySQL 的模糊查询?
  6. 【JAVA基础篇】final、finally和finalize
  7. android网格布局间距,android – 删除回收站视图网格布局中的默认间距
  8. AI学会了视觉推理,“脑补”看不清的物体 | 李佳李飞飞等的CVPR论文
  9. python:ValueError: numpy.ufunc size changed, may indicate binary incompatibility. Expected 216 from
  10. Rsync 实现远程同步
  11. 暂停影片剪辑_暂停声音剪辑
  12. 三位学霸要去 IPO 敲钟:出身姚班,做出 300 亿估值
  13. 【转】函数式编程另类指南
  14. Java小农养成记第十三天
  15. 一张图搞懂FreeModbus
  16. 年度文章集合 | 最全微前端集合【建议收藏】
  17. Linux系统通过iso镜像作为源,安装gedit命令
  18. 四年级计算机的知识,四年级计算机教案
  19. 链表(单链表,双链表)
  20. 用JS解密工具轻松解密JS代码

热门文章

  1. 计算机中year函数怎么使用,Excel中进行使用year函数的操作方法
  2. matlab编程级数的和,matlab关于调和级数的问题
  3. w10系统服务器如何创建新用户,小编教你win10怎么创建新用户账户
  4. 台达PLC ES与欧姆龙E5CC温控器485通讯程序带注释,并附送昆仑通态和威纶通触摸屏程序,有接线方式,设置
  5. EasyTouch5.0.17
  6. QAM调制原理_光学调制器中Dither的使用 -强度调制
  7. htmlparser的使用java_HTMLParser的使用
  8. CocoaPods安装和使用教程
  9. WinForm——窗体总结
  10. 初识Django(一):Django简介