MSSql Server,“不可能”错误

MSSql Server,“不可能”错误

就在几个小时前,我们开始收到一个据我所知“不可能”的错误。错误是

违反 PRIMARY KEY 约束“PK_RntlApp”。无法在对象“Rental_Application”中插入重复键。

我认为这是不可能的,因为 Rental_Application 表的主键名为“File_ID”,并且是自动编号整数。导致此问题的代码已经连续运行了 12 年。

这肯定是有关联的——我们曾经复制过这个数据库。这两个数据库都会保留一系列可以插入的标识值,这样数据就可以插入到两个数据库中,并顺利合并在一起。

几个月前我们打破了这个复制。直到最近一切都运行良好。

如能得到任何帮助或指点,我将不胜感激。

答案1

您可以尝试运行以下命令来查看当前标识值是什么。然后查看该值是否已存在于数据库中。

SELECT IDENT_CURRENT('table_name')

您可能超出了计划的值范围并达到了现有值。或者,也许某个流程或人员在标识列中插入了一个值并避开了自动编号过程。

您可以使用以下命令重置身份种子值。

DBCC CHECKIDENT (<table name>, RESEED, <new value>)

因此,您可以将下一个值移动到未使用的范围,甚至是列中的最大当前值。

相关内容