SET LOCK_TIMEOUT (Transact-SQL)
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
指定陳述式等待鎖定釋出的毫秒數。
語法
SET LOCK_TIMEOUT timeout_period
引數
timeout_period
Microsoft SQL Server 傳回鎖定錯誤之前所經歷的毫秒數。 -1 值 (預設值) 表示沒有逾時期限 (也就是永久等待)。
當等待鎖定超出逾時值時,會傳回錯誤。 0 值表示完全不等待,且在發現鎖定之後,儘快傳回一則訊息。
備註
在開始連線時,這個設定的值為 -1。 變更之後,新設定會在接下來的連線時間內維持有效。
SET LOCK_TIMEOUT 的設定是在執行階段進行設定,而不是在剖析階段進行設定。
READPAST 鎖定提示提供這個 SET 選項的替代方案。
CREATE DATABASE、ALTER DATABASE 和 DROP DATABASE 陳述式不接受 SET LOCK_TIMEOUT 設定。
權限
需要 public 角色的成員資格。
範例
A. 將鎖定逾時設定為 1800 毫秒
下列範例將鎖定逾時期限設為 1800
毫秒。
SET LOCK_TIMEOUT 1800;
GO
範例:Azure Synapse Analytics 和 Analytics Platform System (PDW)
B. 將鎖定逾時設定為永久等待,直到釋放鎖定。
下列範例會將鎖定逾時設定為永久等待,且永不過期。 這是在每個連線一開始就已設定的預設行為。
SET LOCK_TIMEOUT -1;
下列範例將鎖定逾時期限設為 1800
毫秒。 在此版本中,Azure Synapse Analytics 會成功剖析陳述式,但忽略值 1800 並繼續使用預設行為。
SET LOCK_TIMEOUT 1800;