我正在使用SQL Server 2008 R2。
我有一个seq_audit带有标识列的表。这是表的定义:
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打印了错误消息,请与系统管理员联系。
我以为它起作用了,所以我通过运行以下命令再次检查其当前身份:
但是我没有期望得到的结果:
因此,以某种方式无法设置当前标识值。为什么?我在这里做错了什么?
这是因为您的表为空。尝试添加单个记录,然后一切正常。我已经尝试过了,可以确认它是否有效。
另外,如果使用SQL Server Management Studio,则可以使用设计功能来更改种子值。并手动添加和删除记录。