系统目录视图 (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库

目录视图返回由 SQL Server 数据库引擎使用的信息。 建议使用目录视图,因为它们是目录元数据的最通用界面,并提供获取、转换和呈现此信息的自定义形式的最有效方法。 所有用户可用的目录元数据都通过目录视图来显示。

注意

目录视图不包含有关复制、备份、数据库维护计划或 SQL Server 代理目录数据的信息。

备注

某些目录视图从其他目录视图继承行。 例如,sys.tables 目录视图继承自 sys.objects 目录视图。 sys.objects 目录视图称为基本视图,而 sys.tables 视图称为派生视图。 sys.tables 目录视图返回专用于表的列,同时还返回 sys.objects 目录视图返回的所有列。 sys.objects 目录视图返回表之外的对象(例如,存储过程和视图)的行。 创建表之后,表的元数据将在两个视图中返回。 尽管两个目录视图返回有关表的不同级别的信息,但在此表的元数据中只有一个具有一个名称和一个 object_id 的项。 这可以总结如下:

  • 基本视图包含列的子集和行的超集。
  • 派生视图包含列的超集和行的子集。

重要

在 SQL Server 的未来版本中,Microsoft 可能会通过在列列表的末尾添加列来扩充任何系统目录视图的定义。 我们建议不要在生产代码中使用语法 SELECT * FROM sys.<catalog_view_name>,这是因为返回的列数可能会更改和中断应用程序。

SQL Server 中的目录视图具有如下类别: