使用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会出现此错误?
由于
答案 0 :(得分:1)
https://msdn.microsoft.com/en-us/library/ms187745.aspx
结果证明ID字段是一个只能达到32767的smallint。它已经溢出。
答案 1 :(得分:0)
我有同样的问题,当我检查我的桌子时。没有记录。
另外,检查表格的身份是否为ON。