【发布时间】:2019-02-25 04:28:23
【问题描述】:
我无法理解是什么锁定了我的 SQL Server 数据库。我正在通过实体框架从 SQL Server 数据库访问数据。在该 Web 应用程序运行时,我也在使用 SQL Server Management Studio 检查数据。
显然,当我尝试通过右键单击“选择前 n 行”来读取不同的表格时,我会收到一条消息
检索数据失败 - 超过锁定超时时间,错误 1222)。
当我通过Select * from ... 语句手动读取数据时不会发生这种情况,或者至少我还没有注意到。这两种方法有什么区别吗?
更重要的是,我怎样才能确定是什么锁定了我的数据库?我试图进行研究,但仍然不太具体了解该做什么。我尝试使用
DBCC opentran and than
exec sp_who2 SPID
exec sp_lock SPID
这告诉我有一个来自实体框架的活动事务,但不知道具体是哪一个。我在我的应用程序中使用了一些事务。但我认为这些是在我试图通过 Management Studio 访问的其他表上。这些事务是否锁定了整个数据库?
感谢任何帮助。
【问题讨论】:
标签: sql-server entity-framework transactions locking