Delen via


SET LOCK_TIMEOUT (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database in Microsoft Fabric

Geeft het aantal milliseconden aan dat een statement wacht tot een lock wordt losgelaten.

Transact-SQL syntaxis-conventies

Syntaxis

SET LOCK_TIMEOUT timeout_period  

Arguments

timeout_period
Is het aantal milliseconden dat verstrijkt voordat Microsoft SQL Server een vergrendelingsfout teruggeeft. Een waarde van -1 (standaard) geeft aan dat er geen time-out periode is (dat wil zeggen, eeuwig wachten).

Wanneer een wachttijd op een lock de time-out waarde overschrijdt, wordt een foutmelding teruggegeven. Een waarde van 0 betekent dat je helemaal niet moet wachten en een bericht moet teruggeven zodra er een lock wordt gevonden.

Opmerkingen

Aan het begin van een verbinding heeft deze instelling een waarde van -1. Nadat deze is gewijzigd, blijft de nieuwe instelling van kracht voor de rest van de verbinding.

De instelling van SET LOCK_TIMEOUT wordt ingesteld tijdens uitvoeren of uitvoeren en niet tijdens parsetijd.

De READPAST-vergrendelingshint biedt een alternatief voor deze SET-optie.

CREATE DATABASE, ALTER DATABASE en DROP DATABASE-statements houden geen rekening met de SET LOCK_TIMEOUT-instelling.

Permissions

Vereist lidmaatschap van de openbare rol.

Voorbeelden

A: Stel de lock-timeout in op 1800 milliseconden

Het volgende voorbeeld stelt de lock-time-out periode in op 1800 milliseconden.

SET LOCK_TIMEOUT 1800;  
GO  

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

B. Stel de lock-timeout zo in dat je eindeloos wacht tot een lock wordt losgelaten.

Het volgende voorbeeld stelt de lock-timeout zo in dat deze voor altijd wacht en nooit verloopt. Dit is het standaardgedrag dat al aan het begin van elke verbinding is ingesteld.

SET LOCK_TIMEOUT -1;  

Het volgende voorbeeld stelt de lock-time-out periode in op 1800 milliseconden. In deze release zal Azure Synapse Analytics de instructie succesvol parsen, maar de waarde 1800 negeren en het standaardgedrag blijven gebruiken.

SET LOCK_TIMEOUT 1800;  

Zie ook

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