系统信息架构视图 (Transact-SQL)
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例
信息架构视图是 SQL Server 用于获取元数据的几种方法之一。 信息架构视图提供与系统无关的内部 SQL Server 元数据视图。 尽管已经对基础系统表进行了重要的修改,信息架构视图仍然可使应用程序正常工作。 SQL Server 中包含的信息架构视图符合INFORMATION_SCHEMA的 ISO 标准定义。
重要
已对信息架构视图进行了一些更改,这可能会中断向后兼容性。 特定视图的主题中介绍了这些更改。
引用当前服务器时,SQL Server 支持由三部分构成的命名约定。 ISO 标准也支持三部分命名约定。 但是,两种命名约定中使用的名称并不相同。 信息架构视图是在名为 INFORMATION_SCHEMA 的特殊架构中定义的。 此架构包含在每个数据库中。 每个信息架构视图包含特定数据库中存储的所有数据对象的元数据。 下表显示了 SQL Server 名称和 SQL 标准名称之间的关系。
SQL Server 名称 | 对应的 SQL 标准等价名称 |
---|---|
数据库 | 目录 |
架构 | 架构 |
Object | Object |
用户定义的数据类型 | 域 |
此名称映射约定适用于以下 SQL Server ISO 兼容视图。
此外,某些视图还包含对其他类的数据(如字符数据或二进制数据)的引用。
引用信息架构视图时,必须使用包含 INFORMATION_SCHEMA
架构名称的限定名。 例如:
SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLUMN_DEFAULT
FROM AdventureWorks2022.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Product';
权限
信息架构视图中元数据的可见性仅限于用户拥有或已向其授予某些权限的安全对象。 有关详细信息,请参阅 Metadata Visibility Configuration。
注意
信息架构视图在服务器范围内定义,因此不能在用户数据库的上下文中被拒绝。 若要撤消或拒绝访问(SELECT),必须使用 master 数据库。 默认情况下,公共角色具有对所有信息架构视图的 SELECT 权限,但内容受限于元数据可见性规则。