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. 如果语句和事务失败。它们会更改表的当前标识,从而是标识类中的值出现不连贯的现象.即使未提交试图向表中插入值的事务,也永远无法回滚标识值。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql-server – SQL Server:以编程方式执行维护计划
- sql-server-2008 – 实体框架4代码第一 – 防止DB删除/创建
- sql – 如何在单个事务中插入多行时触发触发器
- SQLServer语句 20130226
- 如何在linq中获得第二条记录到sql
- sqlserver2005T-SQL查询语句的逻辑查询处理1
- sql-server-2008 – 何时使用非dbo模式与新数据库的决策标准
- sql – Hiberate问题,jdbc IDENTITY_INSERT设置为OFF
- 在安装了Sql2000的基础上安装Sql2005的详细过程 图文
- sql – 何时使用VARCHAR和DATE / DATETIME