Livelli di isolamento delle transazioni

Si applica a: SQL Server Istanza gestita di SQL di Azure

SQL Server non garantisce che gli hint di blocco verranno rispettati nelle query che accedono ai metadati tramite viste del catalogo, viste di compatibilità, viste degli schemi delle informazioni e funzioni predefinite di creazione di metadati.

Il motore di database di SQL Server rispetta internamente solo il livello di isolamento READ COMMITTED per l'accesso ai metadati. Se una transazione utilizza, ad esempio, un livello di isolamento SERIALIZABLE e nella transazione viene eseguito un tentativo di accedere ai metadati utilizzando le viste del catalogo o le funzioni predefinite di creazione di metadati, le query verranno eseguite fino a quando non vengono completate come READ COMMITTED. Nel livello di isolamento dello snapshot, tuttavia, l'accesso ai metadati potrebbe non riuscire a causa di operazioni DDL simultanee. Questo comportamento si verifica perché ai metadati non viene applicato il controllo delle versioni. Per questo motivo, l'accesso agli elementi indicati di seguito nel livello di isolamento dello snapshot potrebbe non riuscire:

  • Viste del catalogo

  • Viste di compatibilità

  • Viste degli schemi delle informazioni

  • Funzioni predefinite di creazione dei metadati

  • Gruppo di stored procedure sp_help

  • Stored procedure del catalogo SQL Server Native Client

  • Viste e funzioni a gestione dinamica

Per altre informazioni sui livelli di isolamento, vedere SET TRANSACTION ISOLATION LEVEL (Transact-SQL).

Nella tabella seguente è incluso un riepilogo sull'accesso ai metadati in livelli di isolamento diversi.

Livello di isolamento Supportato Rispettato
READ UNCOMMITTED No Rispetto non garantito
READ COMMITTED
REPEATABLE READ No No
SNAPSHOT ISOLATION No No
SERIALIZABLE No No