Поделиться через


SET LOCK_TIMEOUT (Transact-SQL)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Указывает количество миллисекунд, в течение которых инструкция ожидает снятия блокировки.

Соглашения о синтаксисе Transact-SQL

Синтаксис

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.

Примеры

А. Установка времени ожидания блокировки равным 1800 миллисекундам

В следующем примере время ожидания блокировки устанавливается на 1800 миллисекунд.

SET LOCK_TIMEOUT 1800;  
GO  

Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)

B. Установка для времени ожидания бесконечного ожидания снятия блокировки.

В следующем примере для времени ожидания блокировки задается бесконечное ожидание и неограниченная длительность. Это поведение по умолчанию, которое уже задано в начале каждого подключения.

SET LOCK_TIMEOUT -1;  

В следующем примере время ожидания блокировки устанавливается на 1800 миллисекунд. В этом выпуске Azure Synapse Analytics успешно анализирует инструкцию, но будет игнорировать значение 1800 и продолжать использовать поведение по умолчанию.

SET LOCK_TIMEOUT 1800;  

См. также

@@LOCK_TIMEOUT (Transact-SQL)
Инструкции SET (Transact-SQL)