1

我使用 sql server express 作为后端,并通过 C# 在 ASP Net 中插入记录。在表中。我发现只有少数记录没有被保存,而其他记录被保存在同一个表中。假设我的自动身份列看起来像 1,2,3,5,8,9,10,13 等。我已经正确地给出了身份种子。应用程序也不会抛出任何错误。

请注意我在插入记录时没有使用任何表锁。是否需要使用表锁或可能是什么问题

赞赏这方面的任何见解。

谢谢

4

2 回答 2

1

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.

于 2013-02-07T03:17:35.173 回答
0

您的问题(实际上不是问题)与锁无关。

最可能的原因可能是删除记录。删除记录时,添加新记录时不会填补标识中的空白。

此外,查询,将记录添加到表中,可能会使用IDENTITY_INSERT ON,它允许将值插入到标识列中。

ORDER BY此外,除非在子句中指定,否则查询结果不会按标识列排序。

无论如何,如果您认为出现问题,您可以运行 trace inSQL Server Profiler并查看服务器上发生了什么。

于 2013-02-07T04:33:02.483 回答