【发布时间】:2009-04-06 07:26:45
【问题描述】:
我们正在使用 ADO.NET 连接到 SQL 2005 服务器,并在其中执行一些插入/更新和选择。我们将其中一项更新更改为在事务中,但是当我们执行此操作时,它似乎 (b) 锁定了整个表,而不管我们在事务上设置的 IsolationLevel。
我似乎看到的行为是:
- 如果您没有交易,那就是一场全面的战斗(失败者被锁定)
- 如果您有几笔交易,那么他们会一直赢,并阻止所有其他交易,除非
- 如果您有一些事务并且您在其余事务上设置了类似 nolock 的设置,那么您将获得事务并且没有任何阻塞。 这是因为每个语句(选择/插入/删除/更新)都有一个隔离级别,而与事务无关。
这对吗?
【问题讨论】:
标签: sql sql-server transactions locking