SET LOCK_TIMEOUT (Transact-SQL)

 

ESTE TEMA SE APLICA A: síSQL Server (a partir de 2008)síBase de datos SQL de AzuresíAlmacenamiento de datos SQL de Azure síAlmacenamiento de datos paralelos

Especifica el número de milisegundos que una instrucción espera a que se libere un bloqueo.

Topic link icon Convenciones de sintaxis de Transact-SQL

-- Syntax for SQL Server, Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse  
  
SET LOCK_TIMEOUT timeout_period  

timeout_period
Es el número de milisegundos que transcurrirán antes Microsoft SQL Server devuelve un error de bloqueo. El valor -1 (predeterminado) indica que no hay límite de espera (es decir que se espera indefinidamente).

Cuando se espera un bloqueo durante más tiempo que el indicado, se devuelve un error. El valor 0 significa no esperar y devolver un mensaje en cuanto se encuentre un bloqueo.

Al principio de una conexión, este valor es -1. Después de cambiarlo, el nuevo valor permanece en vigor para el resto de la conexión.

La opción SET LOCK_TIMEOUT se establece en tiempo de ejecución, no en tiempo de análisis.

La sugerencia de bloqueo READPAST es una alternativa a esta opción SET.

Las instrucciones CREATE DATABASE, ALTER DATABASE y DROP DATABASE no respetan el parámetro SET LOCK_TIMEOUT.

Debe pertenecer al rol public .

R: establecer el tiempo de espera de bloqueo en 1.800 segundos

En el ejemplo siguiente se establece el período de tiempo de espera de bloqueo en 1800 milisegundos.

SET LOCK_TIMEOUT 1800;  
GO  

B. Establecer el tiempo de espera de bloqueo para esperar indefinidamente se libere un bloqueo.

En el ejemplo siguiente se establece el tiempo de espera de bloqueo para esperar indefinidamente y no expire nunca. Este es el comportamiento predeterminado que ya está establecido al principio de cada conexión.

SET LOCK_TIMEOUT -1;  

En el ejemplo siguiente se establece el período de tiempo de espera de bloqueo en 1800 milisegundos. En esta versión, Almacenamiento de datos SQL analizar la instrucción correctamente, pero se omitirá el valor 1800 y seguir usando el comportamiento predeterminado.

SET LOCK_TIMEOUT 1800;  

@@LOCK_TIMEOUT (Transact-SQL)
Instrucciones SET (Transact-SQL)

Adiciones de comunidad

AGREGAR
Mostrar: