为什么在SQL Server 2008 R2中设置当前身份值对我不起作用?
技术问答
198 人阅读
|
0 人回复
|
2023-09-12
|
我正在使用SQL Server 2008 R2。+ h# S/ x3 r# V3 s3 D; a
我有一个seq_audit带标志列的表。这是表的定义:
9 _# i) ?$ h. Q$ }8 l& K5 B* |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]这张表是空的,以前从来没有做过任何事。
" Z; N" n+ {6 d: g( Y9 \5 k2 D1 c为了检查其当前身份值,我操作了以下命令:7 c' i5 ?) {( [ ~ ]- Z
DBCC CHECKIDENT (seq_audit,NORESEED) GO这是我的结果:
, r7 Y, c4 `' r7 j检查身份信息:当前身份值’NULL’,当前列值’NULL’。DBCC完成执行DBCC打印错误信息,请联系系系系统管理员。5 n. a: X2 T+ ]) ]6 y% Q6 `( }- U
我想将其当前标识值设置为15953711。因此,我操作了以下命令:5 p: ^! f& M5 m
DBCC CHECKIDENT (seq_audit,RESEED,15953711)GO这是我的结果:
$ } j6 N4 y& y! T' o检查身份信息:当前身份值’NULL’,当前列值‘15953711’。DBCC完成执行DBCC打印错误信息,请联系系系系统管理员。' ~+ I) {( u* ?) X0 z
我以为它起作用了,所以我通过操作以下命令再次检查它的当前身份:" A* n% p/ c' d
DBCC CHECKIDENT (seq_audit,NORESEED) GO但我没有预期的结果:1 b2 b; z1 h8 W
检查身份信息:当前身份值’NULL’,当前列值’NULL’。DBCC完成执行DBCC打印错误信息,请联系系系系统管理员。# T, @; w- S5 C' L* o( L! B& O
因此,目前的标识值不能以某种方式设置。为什么?我在这里做错了什么?
$ P0 \ W4 v* `7 Q ~4 ?. d & B/ Q6 j; i) G: O
解决方案:
! D2 ~( f) z' T9 x& c5 O 这是因为你的手表是空的。试着添加一个单一的记录,然后一切正常。我已经试过确认它是否有效了。
2 X- |" t7 c7 R另外,如果使用SQL Server Management Studio,设计功能可用于改变种子值。并手动添加和删除记录。 |
|
|
|
|
|