SET LOCK_TIMEOUT (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)

Especifica o número de milissegundos que uma instrução espera para um bloqueio ser liberado.

Convenções de sintaxe de Transact-SQL

Sintaxe

SET LOCK_TIMEOUT timeout_period  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

timeout_period
É o número de milissegundos que se passarão antes que o Microsoft SQL Server retorne um erro de bloqueio. Um valor de -1 (padrão) indica nenhum tempo limite (isto é, esperar indefinidamente).

Quando uma espera por um bloqueio exceder o valor limite, um erro será retornado. Um valor de 0 significa não esperar e retornar uma mensagem assim que um bloqueio for encontrado.

Comentários

No começo de uma conexão esta configuração tem um valor de -1. Após ser alterado, a nova configuração permanece durante toda a conexão.

A configuração de SET LOCK_TIMEOU é definida no momento da execução e não no momento da análise.

A dica de bloqueio READPAST fornece uma alternativa para esta opção de SET.

Instruções CREATE DATABASE, ALTER DATABASE e DROP DATABASE não aceitam a configuração SET LOCK_TIMEOUT.

Permissões

Requer associação à função pública .

Exemplos

A: Definir o tempo limite de bloqueio como 1.800 milissegundos

O seguinte exemplo define o período de tempo limite de bloqueio para 1800 milissegundos.

SET LOCK_TIMEOUT 1800;  
GO  

Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)

B. Definir o tempo limite de bloqueio para esperar por um bloqueio ser liberado.

O exemplo a seguir define o tempo limite de bloqueio para esperar para sempre e nunca expirar. Esse é o comportamento padrão que já está definido no início de cada conexão.

SET LOCK_TIMEOUT -1;  

O seguinte exemplo define o período de tempo limite de bloqueio para 1800 milissegundos. Nesta versão, o Azure Synapse Analytics analisará a instrução com êxito, mas vai ignorar o valor 1800 e continuar usando o comportamento padrão.

SET LOCK_TIMEOUT 1800;  

Consulte Também

@@LOCK_TIMEOUT (Transact-SQL)
Instruções SET (Transact-SQL)