0

我有 2 个 SQL 语句,可以同时执行。
请求表中的第一个更新请求,当请求被处理时:

UPDATE Requests
SET IsInProcess = '1'

第二个计数正在处理的请求:

SELECT COUNT(*)
FROM Requests
WHERE IsInProcess = '1'

只有在更新语句完成后,我才需要计算请求。
我需要使用哪些事务隔离级别或表提示来完成此操作?

4

1 回答 1

0

你不必使用任何。READ COMMITTED并且默认锁定会做到这一点。(前提是更新开始得早一点,否则更新将等到您计算在内。)

鉴于您的where子句,服务器很可能会X锁定整个表。如果没有,失败的进程将等到获胜的进程释放它对第一个更新/读取行的锁定。

于 2012-09-18T10:21:58.743 回答