truncate table //删除表中的所有数据,让标识从零开始
sqlserver 数据库获取刚刚添加记录的自动增长的主键编号
select @@identity
select * scope_Identity()
select IDENT_CURRENT('Comment')
它们都返回插入到标识列中的值,
IDENT_CURRENT不受作用域和会话的限制,而受限于指定的表。
IDENT_CURRENT返回为任何会话和作用域中的特定表所生成的值。
score_IDENTITY 和@@IDENTITY返回当前会话中的任何白哦内所生成的最后一个标识,但是ScopE_IDENTITY只返回插入到当前作用域中的值;@@IDENTITY不受限于特定的作用域。
例如:有两个表Table1和Table2,并且在Table1上定义了INSERT触发器,当将某行插入Table1时,触发器被激发,并在Table2中插入一行。该方案演示了两个作用域:在Table1上的插入,以及在T2通过触发器的插入。
假设Table1和Tabel2都有标识列,@@identity和scope_IDENTITY将在Table1上的INSERT语句的最后返回不同的值。@@IDENTITY将返回在当前会话中的任何作用域内插入的最后一个标识列的值,这是在Table2中插入的值。ScopE_IDENTITY将返回在Table1中插入的IDENTITY的值,这是在同一个作用域内发生的最后的插入。如果在任何INSERT语句的作用于作用域的标识列之前调用ScopE_IDENTITY()函数,则该函数将返回null.
如果语句和事务失败。它们会更改表的当前标识,从而是标识类中的值出现不连贯的现象.即使未提交试图向表中插入值的事务,也永远无法回滚标识值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。