Sql-Server
在同一批次和事務中的查詢之後使用 WAITFOR 時,查詢完成後是否會釋放表鎖?
如果我有一個從表中讀取的查詢,如果該查詢使用 WAITFOR 關鍵字(在同一個批處理和事務中)進行,那麼在 WAITFOR 完成和事務完成之前,是否會保留前面查詢的表鎖?(我的意思是在 Read Committed 隔離級別伺服器的上下文中。)
範例查詢:
BEGIN TRANSACTION SELECT * FROM ReallyLargeTable WAITFOR DELAY '00:30'; COMMIT TRANSACTION
WAITFOR DELAY 是否會導致前面的查詢將它的表鎖定針對真正大表再保持 30 秒,直到延遲結束並送出事務?
這取決於事務隔離級別。
在讀取送出時,它將釋放鎖。
在“可重複讀取”和“可序列化”中,它將持有鎖。
您可以在以下文章中找到更多資訊:SET TRANSACTION ISOLATION LEVEL