快速业务通道

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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号