Share via


sp_tables (Transact-SQL)

現在の環境で照会されるオブジェクトの一覧を返します。これは、シノニム オブジェクトを除く、ユーザー テーブル、システム テーブル、またはビューを表します。

注意

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

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_tables [ [ @table_name = ] 'name' ] 
     [ , [ @table_owner = ] 'owner' ] 
     [ , [ @table_qualifier = ] 'qualifier' ] 
     [ , [ @table_type = ] "type" ] 
     [ , [@fUsePattern = ] 'fUsePattern'];

引数

  • [ @table_name= ] 'name'
    カタログ情報を返すために使用するテーブルまたはビューを指定します。name のデータ型は nvarchar(384) で、既定値は NULL です。ワイルドカードによるパターン照合がサポートされています。

  • [ @table_owner= ] 'owner'
    カタログ情報を返すために使用するテーブルのテーブル所有者です。owner は nvarchar(384) であり、既定値は NULL です。ワイルドカードによるパターン照合がサポートされています。所有者を指定しない場合は、基になる DBMS の既定のテーブル可視性ルールが適用されます。

    SQL Server では、指定された名前のテーブルを現在のユーザーが所有している場合、そのテーブルの列が返されます。所有者を指定せず、かつ、指定した名前のテーブルを現在のユーザーが所有していない場合は、このプロシージャは、データベース所有者が所有する、指定された名前のテーブルを探します。そのテーブルが存在する場合、そのテーブルの列が返されます。

  • [ @table_qualifier= ] 'qualifier'
    テーブル修飾子の名前です。qualifier は sysname であり、既定値は NULL です。さまざまな DBMS 製品で、3 つの要素で構成されたテーブル名 (qualifier**.owner.**name) を使用できます。SQL Server では、この列はデータベース名を表します。製品によっては、テーブルのデータベース環境のサーバー名を表す場合があります。

  • [ , [ @table_type= ] "'type', 'type'" ]
    指定したテーブル型のすべてのテーブルに関する情報を持つ、コンマで区切られた値の一覧です。このテーブル型には、TABLESYSTEMTABLE、および VIEW が含まれます。type は varchar(100) であり、既定値は NULL です。

    注意

    テーブル型はそれぞれ単一引用符で囲み、パラメーター全体を二重引用符で囲む必要があります。テーブル型は必ず大文字です。SET QUOTED_IDENTIFIER がオンになっている場合は、単一引用符をそれぞれ 2 つずつ付け、パラメーター全体を単一引用符で囲む必要があります。

  • [ @fUsePattern = ] 'fUsePattern'
    アンダースコア (_)、パーセント (%)、および角かっこ ([ または ]) の各文字がワイルドカードとして解釈されるかどうかを決定します。有効な値は 0 (パターン一致がオフ) および 1 (パターン一致がオン) です。fUsePattern のデータ型は bit で、既定値は 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_TYPETABLE_QUALIFIERTABLE_OWNERTABLE_NAME の順序に従って並べ替えられます。

権限

スキーマに対する SELECT 権限が必要です。

A. 現在の環境で照会されるオブジェクトの一覧を返す

次の例では、現在の環境で照会されるオブジェクトの一覧を返します。

EXEC sp_tables ;

B. データベース内のテーブルに関する情報を返す

次の例では、AdventureWorks2008R2 データベース内の Person スキーマに属するテーブルに関する情報を返します。

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