回答

收藏

为什么在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,设计功能可用于改变种子值。并手动添加和删除记录。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则