SET LOCK_TIMEOUT (Transact-SQL)

Si applica a:SQL Serverdatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsSistema di Piattaforma Analitica (PDW)Database SQL in Microsoft Fabric

Specifica l'intervallo in millisecondi durante il quale un'istruzione rimane in attesa del rilascio di un blocco.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

SET LOCK_TIMEOUT timeout_period  

Argomenti

timeout_period
Intervallo di attesa, in millisecondi, prima che Microsoft SQL Server restituisca un errore di blocco. Il valore -1 (predefinito) corrisponde a nessun periodo di timeout, ovvero a un'attesa infinita.

Quando l'attesa per un blocco supera il valore di timeout, viene restituito un errore. Un valore uguale a 0 significa nessuna attesa e non appena viene incontrato un blocco viene visualizzato un messaggio.

Osservazioni:

All'inizio di una connessione tale impostazione è uguale a -1. Se viene modificata, la nuova impostazione rimane attiva per il resto della connessione.

L'impostazione di viene impostata in fase di SET LOCK_TIMEOUT esecuzione o in fase di esecuzione e non in fase di analisi.

Il suggerimento di blocco READPAST offre un'alternativa a questa SET opzione.

CREATE DATABASE, ALTER DATABASE, e DROP DATABASE le affermazioni non rispettano l'ambientazione SETSET LOCK_TIMEOUT .

Autorizzazioni

È richiesta l'appartenenza al ruolo public .

Esempi

A. Impostare il timeout di blocco su 1800 millisecondi.

Nell'esempio seguente il timeout per l'attesa del blocco viene impostato su 1800 millisecondi.

SET LOCK_TIMEOUT 1800;  
GO  

Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)

B. Impostare il timeout di blocco sull'attesa infinita per il rilascio di un blocco.

Nell'esempio seguente il timeout di blocco è impostato per l'attesa infinita e non ha scadenza. Questo comportamento predefinito è già impostato all'inizio di ogni connessione.

SET LOCK_TIMEOUT -1;  

Nell'esempio seguente il timeout per l'attesa del blocco viene impostato su 1800 millisecondi. In questa versione, Azure Synapse Analytics analizzerà correttamente l'istruzione, ma ignorerà il valore 1800 e continuerà a usare il comportamento predefinito.

SET LOCK_TIMEOUT 1800;  

Vedi anche

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