SQL Server:checkident:" [S00014] [2560]参数3对于此DBCC语句不正确。"

时间:2015-06-15 20:54:00

标签: sql-server database

使用SQL Server数据库。查找表使用数据库版本控制工具添加了50个新项目,因此将在所有三个数据库上运行相同的脚本。有一个Dev,QA和Prod版本的数据库,由于政治原因,prod无法克隆到其他环境。该表具有自动增量ID列和另一个子记录表。为了将孩子与新父母联系起来,自动增加的id序列必须是可重复的和可预测的。此时,它无法切换到序列。

options_from_collection_for_select( 
  Country.order('priority desc, name asc'), 
  :id, 
  :name,
  Country.find_by_name('Canada')
)

将设置自动序列的下一个数字,以便新项目获得可预测的ID。当前ID字段的所有三个数据库中的最大ID大约为5000,因此对于脚本而言,只需将其提高到10000就可以保证不会出现问题。自动增量每次步进10步,因此要将第一条记录设置为ID 10000,必须将种子设置为9990。

将种子设置为9990时,SQL Server会收到错误:

  

[S00014] [2560]此DBCC语句的参数3不正确。

将种子设置为9991-> 10000时,它可以正常工作,但将种子设置为9990会出错。

我会尝试不同的起点和其他一些解决方法,但为什么9990会出现此错误?

由于

2 个答案:

答案 0 :(得分:1)

https://msdn.microsoft.com/en-us/library/ms187745.aspx

结果证明ID字段是一个只能达到32767的smallint。它已经溢出。

答案 1 :(得分:0)

我有同样的问题,当我检查我的桌子时。没有记录。

另外,检查表格的身份是否为ON。