SET LOCK_TIMEOUT (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Gibt an, wie viele Millisekunden eine Anweisung auf die Aufhebung einer Sperre wartet.
Transact-SQL-Syntaxkonventionen
Syntax
SET LOCK_TIMEOUT timeout_period
Argumente
timeout_period
Anzahl der Millisekunden, die vergehen, bevor Microsoft SQL Server einen Sperrfehler zurückgibt. Der Wert -1 (Standardwert) gibt an, dass keine Wartezeit festgelegt ist (d. h., es wird ewig gewartet).
Wenn die Wartezeit auf eine Sperre den Timeoutwert überschreitet, wird ein Fehler zurückgegeben. Der Wert 0 gibt an, dass nicht gewartet und eine Meldung zurückgegeben wird, sobald eine Sperre auftritt.
Bemerkungen
Zu Beginn einer Verbindung besitzt diese Einstellung den Wert -1. Nach einer Änderung bleibt die neue Einstellung für die restliche Verbindungsdauer bestehen.
Die Einstellung von SET LOCK_TIMEOUT wird zur Ausführungszeit und nicht zur Analysezeit festgelegt.
Der READPAST-Sperrhinweis stellt eine Alternative zu dieser SET-Option dar.
CREATE DATABASE-, ALTER DATABASE- und DROP DATABASE-Anweisungen erkennen die SET LOCK_TIMEOUT-Einstellung nicht an.
Berechtigungen
Erfordert die Mitgliedschaft in der public -Rolle.
Beispiele
A: Festlegen des Sperrtimeout auf 1800 Millisekunden
Im folgenden Beispiel wird der Sperrtimeout auf 1800
Millisekunden festgelegt.
SET LOCK_TIMEOUT 1800;
GO
Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)
B. Festlegen des Sperrtimeouts, sodass dieses für immer darauf wartet, dass eine Sperre aufgehoben wird.
Im folgenden Beispiel wird festgelegt, dass das Sperrtimeout für immer wartet und nie abläuft. Dabei handelt es sich um das Standardverhalten, das bereits zu Beginn jeder Verbindung festgelegt wird.
SET LOCK_TIMEOUT -1;
Im folgenden Beispiel wird der Sperrtimeout auf 1800
Millisekunden festgelegt. In diesem Release analysiert Azure Synapse Analytics die Anweisung zwar erfolgreich, ignoriert dabei aber den Wert 1800 und verwendet weiterhin das Standardverhalten.
SET LOCK_TIMEOUT 1800;
Weitere Informationen
@@LOCK_TIMEOUT (Transact-SQL)
SET-Anweisungen (Transact-SQL)