小编典典

为什么在SQL Server 2008 R2中设置当前身份值对我不起作用?

sql

我正在使用SQL Server 2008 R2。

我有一个seq_audit带有标识列的表。这是表的定义:

CREATE TABLE [dbo].[seq_audit]
(
    [id] [bigint] IDENTITY(1,1) NOT NULL,
    [value] [bit] NULL,

    PRIMARY KEY CLUSTERED ([id] ASC)
          WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, 
                IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, 
                ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]

该表为空,之前从未有任何行。

要检查其当前身份值,我运行了以下命令:

DBCC CHECKIDENT (seq_audit, NORESEED) 
GO

这是我得到的结果:

检查身份信息:当前身份值’NULL’,当前列值’NULL’。DBCC执行完成。如果DBCC打印了错误消息,请与系统管理员联系。

我想将其当前标识值设置为15953711。因此我运行了以下命令:

DBCC CHECKIDENT (seq_audit, RESEED, 15953711)
GO

这是我得到的结果:

检查身份信息:当前身份值’NULL’,当前列值‘15953711’。DBCC执行完成。如果DBCC打印了错误消息,请与系统管理员联系。

我以为它起作用了,所以我通过运行以下命令再次检查其当前身份:

DBCC CHECKIDENT (seq_audit, NORESEED) 
GO

但是我没有期望得到的结果:

检查身份信息:当前身份值’NULL’,当前列值’NULL’。DBCC执行完成。如果DBCC打印了错误消息,请与系统管理员联系。

因此,以某种方式无法设置当前标识值。为什么?我在这里做错了什么?


阅读 164

收藏
2021-05-30

共1个答案

小编典典

这是因为您的表为空。尝试添加单个记录,然后一切正常。我已经尝试过了,可以确认它是否有效。

另外,如果使用SQL Server Management Studio,则可以使用设计功能来更改种子值。并手动添加和删除记录。

2021-05-30