標籤:blog http ar 資料 sp 2014 問題 c on
背景:
用identity修飾列可以使它自動成長
例了:
create table T(ID int not null identity(1,1),
Data nvarchar(32));
插入資料
declare @i as int =1;
while(@i<10)
begin
insert into T values(replicate(cast(@i as nchar(1)),10))
set @i = @i +1;
end
用dbcc checkident(‘Table_Name‘); 查看錶的種子值。
刪除資料:
delete from T
where ID >1;
go
dbcc checkident(‘Table_Name‘);--這時種子值還是9
再次插入資料:
insert into T(Data) values(‘AAAA‘);
查看資料:
解決方案、
重設種子值:
dbcc checkident(‘T‘,reseed,2);-- 到這一步問題就已經解決了
插入資料:
insert into T(Data) values(‘BBB‘);
輸出:
select * fom T;
重點:
這個種子值是 2 而表是有一個值是 10 如果一直長下去,會發生什麼事呢?讓我們多插入幾條資料看一下
插入資料:
declare @i as int =1;
while(@i<10)
begin
insert into T values(replicate(‘NNN‘,10))
set @i = @i +1;
end
輸出:
重點2、
如果ID是主鍵什麼辦。
第一步:
刪除資料
delete from T
where Data like ‘%N%‘
go
第二步:
加主鍵
alter table T
add constraint PK_ID primary key(ID);
go
SQL Server identity種子