SQLServer中自增字段调整的当前初值

SQLServer中自增字段调整的当前初值
前几天,当一个社区服务器数据库从SQL 2000升级到SQL 2005,遇到报告以下错误是一个奇怪的问题:

主键constraint'pk_cs_threads违规。不能在对象中插入重复密钥

经分析发现,该表的自增字段数据库达到6144,而数据库维护表的初始自增长率仅为6109。

解决方案很简单,可以用下面的sql语句完成:

DBCCCHECKIDENT('cs_threads)

上述声明意味着,如果table'cs_threads'is小于最大标识值存储在列的当前标识值,然后使用标识列的最大值重置。

的checkident命令可以用下面的方法

1、DBCCCHECKIDENT('table_name ',noreseed)

当前标识值不reset.dbcc checkident返回报告表明当前标识值和适当的标识值。

类似于下面的报告:

核对身份信息:当前标识值'6109,当前列的值,'6144。

2、DBCCCHECKIDENT('table_name)或DBCCCHECKIDENT('table_name,补种)

如果表的当前标识值小于存储在列中的最大标识值,则使用标识列中的最大值进行重置。

执行上面的命令时,它也会报告类似于上面的报告。

3、DBCCCHECKIDENT('table_name,补种,new_reseed_value)

当前的值设置为new_reseed_value。

如果行不插入表格后,表格的创建,第一行插入DBCCCHECKIDENT执行后,将使用new_reseed_value身份。否则,未来将使用new_reseed_value + 1。

如果该new_reseed_value值小于在标识符列的最大值,2627号错误信息时会产生表引用。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部