SET LOCK_TIMEOUT (Transact-SQL)SET LOCK_TIMEOUT (Transact-SQL)

適用対象:Applies to: ○ SQL ServerSQL Server (サポートされているすべてのバージョン)yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance yesAzure Synapse Analytics うんParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse適用対象:Applies to: ○ SQL ServerSQL Server (サポートされているすべてのバージョン)yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance yesAzure Synapse Analytics うんParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

ロックが解除されるまでのステートメントの待ち時間をミリ秒単位で指定します。Specifies the number of milliseconds a statement waits for a lock to be released.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

SET LOCK_TIMEOUT timeout_period  

注意

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

引数Arguments

timeout_periodtimeout_period
MicrosoftMicrosoft SQL ServerSQL Server がロック エラーを返すまでの経過時間をミリ秒単位で指定します。Is the number of milliseconds that will pass before MicrosoftMicrosoft SQL ServerSQL Server returns a locking error. 値が -1 (既定値) の場合は、タイムアウトはなく、無期限に待機します。A value of -1 (default) indicates no time-out period (that is, wait forever).

ロックの待ち時間がタイムアウト値を超えると、エラーが返されます。When a wait for a lock exceeds the time-out value, an error is returned. 値が 0 の場合は、待ち時間はなく、ロックがかかるとすぐにメッセージが返されます。A value of 0 means to not wait at all and return a message as soon as a lock is encountered.

解説Remarks

この設定では、接続の開始時に -1 が割り当てられます。At the beginning of a connection, this setting has a value of -1. この値が変更されると、その接続の残りの期間については、新しい設定が適用されます。After it is changed, the new setting stays in effect for the remainder of the connection.

SET LOCK_TIMEOUT は、解析時ではなく実行時に設定されます。The setting of SET LOCK_TIMEOUT is set at execute or run time and not at parse time.

SET オプションの代わりに READPAST ロック ヒントを使用できます。The READPAST locking hint provides an alternative to this SET option.

CREATE DATABASE、ALTER DATABASE、および DROP DATABASE ステートメントでは、SET LOCK_TIMEOUT の設定は無視されます。CREATE DATABASE, ALTER DATABASE, and DROP DATABASE statements do not honor the SET LOCK_TIMEOUT setting.

アクセス許可Permissions

ロール public のメンバーシップが必要です。Requires membership in the public role.

Examples

A: ロック タイムアウトを 1,800 ミリ秒に設定するA: Set the lock timeout to 1800 milliseconds

次の例では、ロック タイムアウトの待ち時間を 1800 ミリ秒に設定します。The following example sets the lock time-out period to 1800 milliseconds.

SET LOCK_TIMEOUT 1800;  
GO  

例: Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse)Parallel Data WarehouseParallel Data WarehouseExamples: Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse) and Parallel Data WarehouseParallel Data Warehouse

B.B. ロックが解放されるまで無限に待機するようにロック タイムアウトを設定する。Set the lock timeout to wait forever for a lock to be released.

次の例では、ロック タイムアウトを無期限に待機して期限切れにならないように設定します。The following example sets the lock timeout to wait forever and never expire. これは、各接続の開始時に既に設定されている既定の動作です。This is the default behavior that is already set at the beginning of each connection.

SET LOCK_TIMEOUT -1;  

次の例では、ロック タイムアウトの待ち時間を 1800 ミリ秒に設定します。The following example sets the lock time-out period to 1800 milliseconds. このリリースの Microsoft Azure Synapse Analytics (旧称 SQL Data Warehouse)Microsoft Azure Synapse Analytics (formerly SQL Data Warehouse) は、ステートメントを正常に解析しますが、1800 という値は無視して既定の動作を使い続けます。In this release, Microsoft Azure Synapse Analytics (旧称 SQL Data Warehouse)Microsoft Azure Synapse Analytics (formerly SQL Data Warehouse) will parse the statement successfully, but will ignore the value 1800 and continue to use the default behavior.

SET LOCK_TIMEOUT 1800;  

参照See Also

@@LOCK_TIMEOUT (Transact-SQL) @@LOCK_TIMEOUT (Transact-SQL)
SET ステートメント (Transact-SQL)SET Statements (Transact-SQL)