事务隔离级别

Applies to:SQL ServerAzure SQL Managed Instance

SQL Server 不保证在通过目录视图、兼容性视图、信息架构视图、元数据发出内置函数访问元数据的查询中会遵循锁定提示。

在内部,SQL Server 数据库引擎仅遵循 READ COMMITTED 元数据访问的隔离级别。 如果事务具有隔离级别(例如SERIALIZABLE,在事务中),则尝试使用目录视图或发出元数据的内置函数访问元数据,则这些查询将运行,直到它们完成。READ COMMITTED 但是,在快照隔离级别下,访问元数据可能会因并发的 DDL 操作而失败。 这是因为元数据未进行版本控制。 因此,在快照隔离级别下访问下列内容可能会失败:

  • Catalog views
  • Compatibility views
  • 信息架构视图
  • 元数据发出内置函数
  • sp_help 存储过程组
  • SQL Server Native Client 目录过程
  • 动态管理视图和函数

有关隔离级别的详细信息,请参阅 SET TRANSACTION ISOLATION LEVEL

下表概述了各种隔离级别下的元数据访问。

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