Partilhar via


SET LOCK_TIMEOUT (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Base de dados SQL no Microsoft Fabric

Especifica o número de milissegundos que uma instrução espera que um bloqueio seja libertado.

Transact-SQL convenções de sintaxe

Sintaxe

SET LOCK_TIMEOUT timeout_period  

Arguments

timeout_period
É o número de milissegundos que passam antes de o Microsoft SQL Server devolver um erro de bloqueio. Um valor de -1 (por defeito) indica que não há período de tempo (ou seja, espera para sempre).

Quando uma espera por um bloqueio excede o valor de time-out, é devolvedo um erro. Um valor 0 significa não esperar de todo e devolver uma mensagem assim que um bloqueio for encontrado.

Observações

No início de uma ligação, esta definição tem um valor de -1. Depois de alterada, a nova definição mantém-se ativa durante o restante período da ligação.

A definição de SET LOCK_TIMEOUT é definida em tempo de execução ou execução e não em tempo de análise sintética.

A dica de bloqueio READPAST oferece uma alternativa a esta opção SET.

As instruções CREATE DATABASE, ALTER DATABASE e DROP DATABASE não respeitam a definição SET LOCK_TIMEOUT.

Permissions

Requer adesão à função pública de .

Examples

R: Defina o tempo de bloqueio para 1800 milissegundos

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

SET LOCK_TIMEOUT 1800;  
GO  

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

B. Defina o timeout do bloqueio para esperar para sempre que o bloqueio seja libertado.

O exemplo seguinte define o timeout do bloqueio para esperar para sempre e nunca expirar. Este é o comportamento padrão que já está definido no início de cada ligação.

SET LOCK_TIMEOUT -1;  

O exemplo seguinte define o período de tempo de encerramento para 1800 milissegundos. Nesta versão, o Azure Synapse Analytics irá analisar a instrução com sucesso, mas ignorará o valor 1800 e continuará a usar o comportamento padrão.

SET LOCK_TIMEOUT 1800;  

Ver também

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