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

Chu*_*ati 2 sql sql-server identity sql-server-2008-r2

我正在使用 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]
Run Code Online (Sandbox Code Playgroud)

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

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

DBCC CHECKIDENT (seq_audit, NORESEED) 
GO
Run Code Online (Sandbox Code Playgroud)

这是我得到的结果:

检查标识信息:当前标识值“NULL”,当前列值“NULL”。DBCC 执行完成。如果 DBCC 打印错误消息,请联系您的系统管理员。

我想将它的当前标识值设置为 15953711。所以我运行了这个命令:

DBCC CHECKIDENT (seq_audit, RESEED, 15953711)
GO
Run Code Online (Sandbox Code Playgroud)

这是我得到的结果:

检查标识信息:当前标识值“NULL”,当前列值“15953711”。DBCC 执行完成。如果 DBCC 打印错误消息,请联系您的系统管理员。

我认为它有效,所以我通过运行以下命令再次检查其当前身份:

DBCC CHECKIDENT (seq_audit, NORESEED) 
GO
Run Code Online (Sandbox Code Playgroud)

但我没想到我得到的结果:

检查标识信息:当前标识值“NULL”,当前列值“NULL”。DBCC 执行完成。如果 DBCC 打印错误消息,请联系您的系统管理员。

所以不知何故,当前身份值的设置不起作用。为什么?我在这里做错了什么?

Pet*_*ith 6

这是由于您的表是空的。尝试添加一条记录,然后一切都会好起来的。我已经试过了,可以确认它有效。

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