繁体   English   中英

SQL SERVER:插入时的顺序标识值

[英]SQL SERVER : Sequential identity value on Insert

我被这个看似简单的问题所困扰。

我有一个SQL Server 2008表tblCabinet,带有CabinetID作为主键和标识(种子= 1),现在我插入到此表中并从中删除。 所以现在当我在tbl插入中输入新行时

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

在此处输入图片说明

它会输入一个内阁ID为11的新行。我知道这已经发生了,因为我已经删除了之间的行。 我如何通过仍然保持身份插入打开状态来确保获取下一个可用身份,在这种情况下为橱柜ID 4? 我知道我可以通过插入MAX(CabinetID)+1手动输入。

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

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

但我知道确实没有任何好方法可以做到这一点。

您需要将“主键”和“身份”设置为“关”,并且必须手动进行计算。

您的插入查询看起来像

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM