微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlserver获取刚刚添加的主键值与删除表中所有数据标识从零开始

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 举报,一经查实,本站将立刻删除。

相关推荐