sp_tables (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウス

現在の環境でクエリできるオブジェクトの一覧を返します。 これは、シノニム オブジェクトを除くすべてのテーブルまたはビューを意味します。

注意

シノニムのベース オブジェクトの名前を確認するには、sys.synonyms カタログ ビューに対してクエリを実行します。

Transact-SQL 構文表記規則

構文

SQL Server、Azure SQL Database、Azure Synapse Analytics、Parallel Data Warehouse の構文:

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_nameは nvarchar(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 製品では、テーブルの 3 部構成の名前付け (<qualifier>.<owner>.<name>) がサポートされています。 SQL Server では、この列はデータベース名を表します。 一部の製品では、テーブルのデータベース環境のサーバー名を表します。

[ @table_type = ] 'table_type'

指定されたテーブル型のすべてのテーブルに関する情報を提供する、コンマで区切られた値のリスト。 これらには、 TABLESYSTEMTABLE 、および VIEW が含まれます。 @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 製品へのゲートウェイのシノニムと別名も含まれます。 結果セットsp_server_infoのサーバー属性ACCESSIBLE_TABLESが Y の場合は、現在のユーザーがアクセスできるテーブルのみが返されます。

sp_tables は ODBC の場合と SQLTables 同じです。 返される結果は 、 TABLE_TYPE、、 TABLE_QUALIFIERTABLE_OWNER、および TABLE_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';