我有2个SQL语句,可以同时执行 当请求处理时,第一个更新来自请求表的请求:
UPDATE Requests
SET IsInProcess = '1'
第二个计算正在处理的请求:
SELECT COUNT(*)
FROM Requests
WHERE IsInProcess = '1'
我需要在更新声明完成后才计算请求 我需要使用哪些事务隔离级别或表提示来实现此目的?
答案 0 :(得分:0)
您不必使用任何。 READ COMMITTED
和默认锁定会这样做。 (如果更新提前开始,则更新将等到您计算。)
根据您的where
子句,服务器可能会对整个表进行X
锁定。如果事件没有,则丢失进程将等到获胜进程在第一个更新/读取行上释放锁定。