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 打印错误消息,请联系您的系统管理员。
所以不知何故,当前身份值的设置不起作用。为什么?我在这里做错了什么?
这是由于您的表是空的。尝试添加一条记录,然后一切都会好起来的。我已经试过了,可以确认它有效。
此外,如果您使用 SQL Server Management Studio,您可以使用设计功能来更改种子值。并手动添加和删除记录。