我使用 sql server express 作为后端,并通过 C# 在 ASP Net 中插入记录。在表中。我发现只有少数记录没有被保存,而其他记录被保存在同一个表中。假设我的自动身份列看起来像 1,2,3,5,8,9,10,13 等。我已经正确地给出了身份种子。应用程序也不会抛出任何错误。
请注意我在插入记录时没有使用任何表锁。是否需要使用表锁或可能是什么问题
赞赏这方面的任何见解。
谢谢
我使用 sql server express 作为后端,并通过 C# 在 ASP Net 中插入记录。在表中。我发现只有少数记录没有被保存,而其他记录被保存在同一个表中。假设我的自动身份列看起来像 1,2,3,5,8,9,10,13 等。我已经正确地给出了身份种子。应用程序也不会抛出任何错误。
请注意我在插入记录时没有使用任何表锁。是否需要使用表锁或可能是什么问题
赞赏这方面的任何见解。
谢谢
Records in a table are not guaranteed to be in order. Try running the query:
select *
from t
order by <auto-identity column>
Also, deleting records will create holes in the primary keys.
您的问题(实际上不是问题)与锁无关。
最可能的原因可能是删除记录。删除记录时,添加新记录时不会填补标识中的空白。
此外,查询,将记录添加到表中,可能会使用IDENTITY_INSERT ON,它允许将值插入到标识列中。
ORDER BY
此外,除非在子句中指定,否则查询结果不会按标识列排序。
无论如何,如果您认为出现问题,您可以运行 trace inSQL Server Profiler
并查看服务器上发生了什么。