日期:2014-05-17 浏览次数:20555 次
use Tempdb go create table T1(ID int identity) insert T1 default values; delete T1 go dbcc checkident('T1',reseed,0) go insert T1 default values; go select * from t1
------解决方案--------------------
--1. 下面的代码演示了回滚事务导致标识值不连续的情况: --a.手工回滚事务 CREATE TABLE #(id int IDENTITY(0,1),b int) INSERT # SELECT 1 --手工事务回滚 BEGIN TRAN INSERT # SELECT 2 ROLLBACK TRAN INSERT # SELECT 2 SELECT * FROM # DROP TABLE # /*--结果 id b ----------------- ----------- 0 1 2 2 --*/ GO --b. 因操作失败自动回滚事务 CREATE TABLE #(id int IDENTITY(0,1),b int UNIQUE) INSERT # SELECT 1 --违反惟一键约束,插入失败而导致自动回滚事务 INSERT # SELECT 1 INSERT # SELECT 2 SELECT * FROM # DROP TABLE # /*--结果 id b ----------------- ----------- 0 1 2 2 --*/ GO /*===================================================*/
------解决方案--------------------