SQL Server标识列插入0值,种子为1

时间:2016-06-16 17:00:40

标签: sql sql-server-2008 auto-increment identity

这与问题有点相关:SQL server identity column values start at 0 instead of 1

但我不确定这里发生了什么。我们有“空白”数据库,我们用它来启动客户的帐户。我们通过备份和恢复数据库来做到这一点。

客户在恢复后获得完全空白的表格。表的示例,我们所有的表都具有与此完全相同的PK:

CREATE TABLE [dbo].[RNPRatePlanStop]
(
    [RatePlanStopKey] [int] IDENTITY(1,1) NOT NULL,
    [RatePlanKey] [int] NOT NULL,   
    .....
)

插入新记录时偶尔会出现一段时间(并非总是而不是所有表格) - 0未预期插入1。我不确定如何解决这个问题或者我做错了什么。这会导致UI出现问题,因为我们不依赖于0键..

1 个答案:

答案 0 :(得分:0)

当我运行这样的命令时,声明也是IDENTITY(1,1):

SELECT IDENT_CURRENT('RNPRatePlanStop')

它返回0.对于此表和大约7个其他表。不知道这是怎么可能的,可能是因为IDENTITY后来通过脚本应用了。

解决方案是在这些表格上“播种”正确的身份:

DBCC CHECKIDENT(RNPRatePlanStop, RESEED, 1)

之后 - 他们都正确重置,一切都很顺利。 100多个表中的少数人最终是这样的,这仍然是个谜。