插入的记录丢失
问题描述:
我使用sql server express作为后端并通过C#在ASP Net中插入记录。在桌上。我发现只有少数记录没有保存,而其他记录保存在同一张表中。说我的自动识别列看起来像1,2,3,5,8,9,10,13等我已正确地给予身份种子。也应用程序不会抛出任何错误。插入的记录丢失
请注意我插入记录时不使用任何表锁。 它是否需要使用表锁或可能是什么问题
在这方面的任何洞察力是赞赏。
谢谢
答
表中的记录不保证按顺序排列。尝试运行查询:
select *
from t
order by <auto-identity column>
另外,删除记录将在主键上创建孔。
答
你的问题(其实不是问题)与锁无关。
它的最可能的原因可能是删除记录。删除记录时,添加新记录时,标识中的间隔不会填充。
另外,查询(将记录添加到表中)使用IDENTITY_INSERT ON可以将值插入标识列。
此外,除非在ORDER BY
子句中指定了查询结果,否则查询结果不按标识列排序。
无论如何,如果您认为发生了什么问题,您可以运行SQL Server Profiler
中的跟踪并查看服务器上发生了什么。
我们需要查看您的C#和SQL代码才能够帮助您。 – RBarryYoung
无论什么原因,我都会强烈建议您不要期望您的身份值是连续的。你会浪费时间试图修复身份,并冒着破坏完整性的风险。如果您需要一个连续的数字来订购商品,则使用第二列,该列可以从表中播种或者通过查找MAX + 1值自动生成(在更新过程中锁定以避免碰撞)。 –