sp_tables (Transact-SQL)

适用于:Microsoft Fabric Microsoft Fabric Warehouse 中的 SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics 终结点

返回可在当前环境中查询的对象的列表。 也就是说,返回任何表或视图(不包括同义词对象)。

注意

若要确定同义词的基对象名称,请查询 sys.synonyms 目录视图。

Transact-SQL 语法约定

语法

SQL Server、Azure SQL 数据库、Azure Synapse Analytics、并行数据仓库的语法:

sp_tables
    [ [ @table_name = ] N'table_name' ]
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @table_type = ] 'table_type' ]
    [ , [ @fUsePattern = ] fUsePattern ]
[ ; ]

参数

[ @table_name = ] N'table_name'

用于返回目录信息的表。 @table_namenvarchar(384),默认值为 NULL. 支持通配符模式匹配。

[ @table_owner = ] N'table_owner'

用于返回目录信息的表的表所有者。 @table_owner为 nvarchar(384),默认值为 NULL. 支持通配符模式匹配。 如果未指定所有者,则应用基础 DBMS 的默认表可见性规则。

在 SQL Server 中,如果当前用户拥有一个具有指定名称的表,则返回该表的列。 如果未指定所有者,并且当前用户不拥有具有指定名称的表,此过程将查找具有数据库所有者拥有的指定名称的表。 如果存在这样的表,则返回该表的列。

[ @table_qualifier = ] N'table_qualifier'

表限定符的名称。 @table_qualifier为 sysname,默认值为 NULL. 各种 DBMS 产品支持表的三部分命名(<qualifier>.<owner>.<name>)。 在 SQL Server 中,此列表示数据库名称。 在某些产品中,该列表示表所在的数据库环境的服务器名。

[ @table_type = ] 'table_type'

一个由逗号分隔的值列表,用于提供有关指定表类型的所有表的信息。 其中包括 TABLESYSTEMTABLEVIEW@table_type为 varchar(100),默认值为 NULL.

每个表类型都必须用单引号引起来,整个参数必须用双引号引起来。 表类型必须大写。 ON如果是SET QUOTED_IDENTIFIER,每个单引号必须加倍,并且整个参数必须用单引号引起来。

[ @fUsePattern = ] fUsePattern

确定下划线()、百分比(_%)和括号([])字符是否解释为通配符。 有效值为 0 (模式匹配已关闭),并且 1 (模式匹配处于打开状态)。 @fUsePattern,默认值为 1.

返回代码值

无。

结果集

列名称 数据类型 描述
TABLE_QUALIFIER sysname 表限定符名称。 在 SQL Server 中,此列表示数据库名称。 此字段可以是 NULL.
TABLE_OWNER sysname 表所有者名称。 在 SQL Server 中,此列表示创建该表的数据库用户的名称。 此字段始终返回值。
TABLE_NAME sysname 表名。 此字段始终返回值。
TABLE_TYPE varchar(32) 表、系统表或视图。
REMARKS varchar(254) SQL Server 不返回此列的值。

注解

为达到最大互操作性,网关客户端应假定只有 SQL-92 标准的 SQL 模式匹配(% 和 _ 通配符字符)。

不会始终检查有关当前用户对特定表的读取或写入访问权限的特权信息。 因此,不保证访问。 该结果集不仅包含表和视图,还包含网关的同名和别名,这些网关通往支持这些类型的 DBMS 产品。 如果服务器属性 ACCESSIBLE_TABLES 在结果集中 sp_server_info为 Y,则仅返回当前用户可以访问的表。

sp_tables 等效于 SQLTables ODBC。 返回的结果按 TABLE_TYPETABLE_QUALIFIERTABLE_OWNERTABLE_NAME

权限

目录视图中仅显示用户拥有的安全对象的元数据,或用户对其拥有某些权限的安全对象的元数据。 有关详细信息,请参阅 Metadata Visibility Configuration

示例

A. 返回可在当前环境中查询的对象列表

以下示例返回可在当前环境中查询的对象列表。

EXEC sp_tables;

B. 返回有关指定架构中的表的信息

以下示例将返回有关属于 AdventureWorks2022 数据库中的 Person 架构的表的信息。

USE AdventureWorks2022;
GO
EXEC sp_tables
   @table_name = '%',
   @table_owner = 'Person',
   @table_qualifier = 'AdventureWorks2022';

示例:Azure Synapse Analytics 和 Analytics Platform System (PDW)

°C 返回可在当前环境中查询的对象列表

以下示例返回可在当前环境中查询的对象列表。

EXEC sp_tables;

D. 返回有关指定架构中的表的信息

以下示例返回有关 AdventureWorksPDW2012 数据库中维度表的信息。

-- Uses AdventureWorks

EXEC sp_tables
   @table_name = 'Dim%',
   @table_owner = 'dbo',
   @table_qualifier = 'AdventureWorksPDW2012';