Delen via


Isolatieniveaus voor transacties

Applies to:SQL ServerAzure SQL Managed Instance

SQL Server garandeert niet dat vergrendelingshints worden uitgevoerd in query's die toegang hebben tot metagegevens via catalogusweergaven, compatibiliteitsweergaven, informatieschemaweergaven, ingebouwde functies voor metagegevens.

Intern respecteert de SQL Server Database Engine alleen het READ COMMITTED isolatieniveau voor toegang tot metagegevens. Als een transactie bijvoorbeeld een isolatieniveau heeft dat bijvoorbeeld SERIALIZABLE en binnen de transactie wordt gedaan, wordt geprobeerd om toegang te krijgen tot metagegevens met behulp van catalogusweergaven of ingebouwde functies die ingebouwde functies verzenden, worden deze query's uitgevoerd totdat ze zijn voltooid als READ COMMITTED. Bij isolatie van momentopnamen kan de toegang tot metagegevens echter mislukken vanwege gelijktijdige DDL-bewerkingen. Dit komt doordat metagegevens niet zijn geversied. Daarom kan het openen van het volgende onder isolatie van momentopnamen mislukken:

  • Catalog views
  • Compatibility views
  • Informatieschemaweergaven
  • Ingebouwde functies voor metagegevens verzenden
  • sp_help groep opgeslagen procedures
  • Procedures voor systeemeigen SQL Server-clientcatalogus
  • Dynamische beheerweergaven en -functies

Zie SET TRANSACTION ISOLATION LEVELvoor meer informatie over isolatieniveaus.

De volgende tabel bevat een overzicht van toegang tot metagegevens onder verschillende isolatieniveaus.

Isolation level Supported Honored
READ UNCOMMITTED No Not guaranteed
READ COMMITTED Yes Yes
REPEATABLE READ No No
SNAPSHOT ISOLATION No No
SERIALIZABLE No No