SQL SERVER:Insert上的顺序标识值

时间:2014-01-07 06:32:21

标签: sql-server

我对这个看似简单的问题感到困惑。

我有一个sql server 2008表tblCabinet,其中CabinetID为主键和标识(Seed = 1) 现在我插入和删除此表。所以现在当我输入一个新的行进入tbl insert

Insert into tblCabinet values ('F',5,5,5)

enter image description here

它进入一个机柜ID为11的新行。我知道它已经发生了,因为我删除了它们之间的行。 我如何确保它采用下一个可用身份,在这种情况下,通过仍然保持身份插入ON,机柜ID为4?我知道我可以通过插入MAX(CabinetID)+1手动输入。

2 个答案:

答案 0 :(得分:1)

您可以像这样永久重置种子:

declare @max int;  
select @max = max(key) from table;  
dbcc checkident(table,reseed,@max)

但实际上我知道没有任何好办法。

答案 1 :(得分:0)

您需要关闭主键和身份,并且必须手动计算。

您的插入查询将如下所示

Insert into tblCabinet 
values (Select MAX (CabinetID) +1 FROM tblCabinet ,'F',5,5,5)