Applies to:SQL Server
Azure 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 |