在 sql Server 2008 R2 中检查指定表的当前标识值,如有必要,则更改标识值。还可以使用 DBCC CHECKIDENT 为标识列手动设置新的当前标识值。
Transact-SQL 语法约定
DBCC CHECKIDENT ( table_name [,{ norESEED | { RESEED [,new_reseed_value ] } } ] ) [ WITH NO_INFOMSGS ]
对当前标识值所做的具体更正取决于参数规范。
DBCC CHECKIDENT 命令 |
标识更正或所做的更正 |
---|---|
DBCC CHECKIDENT (table_name,norESEED ) |
不重置当前标识值。DBCC CHECKIDENT 将返回标识列的当前标识值和当前最大值。如果这两个值不相同,则应重置标识值,以避免值序列中的潜在错误或空白。 |
DBCC CHECKIDENT (table_name ) 或者 DBCC CHECKIDENT (table_name,RESEED ) |
如果表的当前标识值小于标识列中存储的最大标识值,则使用标识列中的最大值对其进行重置。请参阅后面的“异常”部分。 |
DBCC CHECKIDENT (table_name,RESEED,new_reseed_value ) |
将当前标识值设置为 new_reseed_value。如果自从创建表以来未在表中插入任何行,或者已使用 TruncATE TABLE 语句删除所有行,则在运行 DBCC CHECKIDENT 之后插入的第一行将使用 new_reseed_value 作为标识。否则,插入的下一行将使用new_reseed_value + 当前增量值。 如果该表不为空,那么将标识值设置为小于标识列中的最大值的数字时,将会出现下列情况之一: |
异常
下表列出了 DBCC CHECKIDENT 不自动重置当前标识值时的条件,并提供了重置该值的方法。
条件 |
重置方法 |
---|---|
当前标识值大于表中的最大值。 |
或者
|
删除表中的所有行。 |
在将 new_reseed_value 设置为所需开始值的情况下执行 DBCC CHECKIDENT (table_name,new_reseed_value)。 |
更改种子值
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。