存储过程锁 table

StoredProcedures locks table

我有一个存储过程需要几分钟才能执行。此 StoredProcedure 确实在不同的 table 上进行了多次选择、(批量)更新和插入。 现在,当这个 StoredProcedure 正在执行时,被更新的 tables 被锁定。在存储过程的开始,布尔标志从 1 切换到 0,在结束时标志从 0 切换到 1。 现在,其他在此 tables 上进行插入或更新的语句(从 StoredPROcedure 更新)在 StoredProcedure 执行期间被锁定(这会导致超时异常)。

有没有办法让 StoredPROcedure 不锁定任何 table?我也尝试了 IsolationLevel ReadUncommited,但这个 IsolationLevel 仍然存在问题。

对此没有快速的答案。你需要花点时间研究 Locking in SQL Server。并了解事务为您提供什么、锁可以做什么和不能做什么、持有锁多长时间、隔离级别。

一旦你有了更好的理解,你应该能够回答我们赢得的问题,或者至少提出一个更有针对性的问题。