Partager via


SET LOCK_TIMEOUT (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Spécifie le nombre de millisecondes qu’attend une instruction avant la libération d’un verrou.

Conventions de la syntaxe Transact-SQL

Syntaxe

SET LOCK_TIMEOUT timeout_period  

Arguments

timeout_period
Nombre de millisecondes écoulées avant que Microsoft SQL Server ne retourne une erreur de verrouillage. La valeur -1 (par défaut) indique qu'il n'y a pas de délai d'expiration (et par conséquent une attente infinie).

Si le délai d'attente avant la libération d'un verrou est supérieur au délai d'expiration spécifié, une erreur est renvoyée. Une valeur égale à 0 signifie que l'instruction n'attend pas et qu'elle retourne un message dès qu'elle rencontre un verrou.

Notes

Au début d'une connexion, la valeur de ce paramètre est -1 Une fois celle-ci modifiée, le nouveau paramètre reste en vigueur pour le reste de la durée de la connexion.

L'option SET LOCK_TIMEOUT est appliquée lors de l'exécution, et non pas lors de l'analyse.

L'indicateur de verrouillage READPAST est une alternative à cette option SET.

Les instructions CREATE DATABASE, ALTER DATABASE et DROP DATABASE ignorent le paramètre SET LOCK_TIMEOUT.

Autorisations

Nécessite l'appartenance au rôle public .

Exemples

A : Définir le délai d’attente de verrou sur 1800 millisecondes

L'exemple suivant définit le délai d'attente de déverrouillage à 1800 millisecondes.

SET LOCK_TIMEOUT 1800;  
GO  

Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)

B. Définir le délai d’attente de verrou pour attendre indéfiniment qu’un verrou soit libéré.

L’exemple suivant définit le délai d’attente de verrou pour attendre indéfiniment et ne jamais expirer. Il s’agit du comportement par défaut qui est déjà défini au début de chaque connexion.

SET LOCK_TIMEOUT -1;  

L'exemple suivant définit le délai d'attente de déverrouillage à 1800 millisecondes. Dans cette version, Azure Synapse Analytics analyse l’instruction avec succès, mais ignore la valeur 1800 et continue à utiliser le comportement par défaut.

SET LOCK_TIMEOUT 1800;  

Voir aussi

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