0

我有一个使用 SQL Server 作为后端运行了大约 10 年的 .NET 应用程序。出于某种原因,在过去的 2-3 个月中,它决定跳过大约 990 个(我认为是 997 两次,989 一次)IDENTITY 号码 3 次。我想不出系统执行的任何活动会生成记录然后删除它们或尝试多次插入。这是一个非常间歇性的问题,但它很奇怪,我想深入了解它。有没有人对如何寻找原因有任何想法?

该系统混合了不同的技术——旧的东西是 ADO.NET,而新的东西是 Linq to SQL。我认为记录每个执行的语句或任何内容是不可行的,因为它是一个拥有大量用户的非常活跃的系统。

4

1 回答 1

1

这是正常的 - 如果由于违反约束而导致更新尝试失败(例如,因为尝试插入NULL不可为空的列或不存在的外键),则标识字段将增加,但行将不插入。

下一个插入的行(假设它不会失败)将增加标识并插入,留下一个“间隙”。

这不是问题。

于 2013-04-18T09:36:11.177 回答