我对这个看似简单的问题感到困惑。
我有一个sql server 2008表tblCabinet,其中CabinetID为主键和标识(Seed = 1) 现在我插入和删除此表。所以现在当我输入一个新的行进入tbl insert
Insert into tblCabinet values ('F',5,5,5)
它进入一个机柜ID为11的新行。我知道它已经发生了,因为我删除了它们之间的行。 我如何确保它采用下一个可用身份,在这种情况下,通过仍然保持身份插入ON,机柜ID为4?我知道我可以通过插入MAX(CabinetID)+1手动输入。
答案 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)