Sql Server2005
作者 佚名技术
来源 数据库编程
浏览
发布时间 2012-03-22
--> Title : 自增列重複與不連續 --> Author : wufeng4552 --> Date : 2009-11-13 08:31:12 --自增列通常在以下幾種情況而導致不連續 if object_id(''tb'')is not null drop table tb go create table tb(ID int identity(0,1),name varchar(10)unique) --1插入失敗自動回滾 insert tb([name]) select ''A'' insert tb([name]) select ''A'' /* 錯誤原因 訊息2627,層級14,狀態1,行4 違反UNIQUE KEY 條件約束''UQ__tb__6B79F03D''。無法在物件''dbo.tb'' 中插入重複的索引鍵。 陳述式已經結束。 */ insert tb([name]) select ''B'' select * from tb -->查詢結果 /* (1 個資料列受到影響) ID name ----------- ---------- 0 A 2 B (2 個資料列受到影響) */ if object_id(''tb'')is not null drop table tb go create table tb(ID int identity(0,1),name varchar(10)unique) --2手動回滾 insert tb([name]) select ''B'' begin tran insert tb([name]) select ''A'' rollback tran insert tb([name]) select ''C'' select * from tb -->查詢結果 /* ID name ----------- ---------- 0 B 2 C (2 個資料列受到影響) */ if object_id(''tb'')is not null drop table tb go create table tb(ID int identity(0,1),name varchar(10)unique) --3重置種子 insert tb([name]) select ''B'' dbcc checkident(tb,reseed,2) insert tb([name]) select ''C'' insert tb([name]) select ''D'' select * from tb -->查詢結果 /* ID name ----------- ---------- 0 B 3 C 4 D (3 個資料列受到影響)*/ if object_id(''tb'')is not null drop table tb go create table tb(ID int identity(0,1),name varchar(10)unique) --4刪除 insert tb([name]) select ''B'' insert tb([name]) select ''C'' delete tb where [name]=''C'' insert tb([name]) select ''D'' select * from tb -->查詢結果 /* ID name ----------- ---------- 0 B 2 D (2 個資料列受到影響) */ --自增列通常在以下幾種情況而導致重複 if object_id(''tb'')is not null drop table tb go create table tb(ID int identity(0,1),name varchar(10)unique) --1手動插入 insert tb([name]) select ''B'' insert tb([name]) select ''C'' set identity_insert tb on insert tb(id,[name]) select 1,''D'' set identity_insert tb off select * from tb -->查詢結果 /* ID n |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: SQL UPDATE如何工作下一篇: 调整Windows参数提高SQL Server性能
关于Sql Server2005的所有评论