sp_tables (Transact-SQL)

更新 : 2006 年 12 月 12 日

現在の環境で照会されるオブジェクトの一覧を返します。これは、シノニム オブジェクトを除く、FROM 句で指定できる任意のオブジェクトを表します。

ms186250.note(ja-jp,SQL.90).gifメモ :
シノニムのベース オブジェクトの名前を確認するには、sys.synonyms カタログ ビューをクエリします。

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

構文

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

引数

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

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

  • [ @table_qualifier= ] 'qualifier'
    テーブル修飾子の名前です。qualifiersysname であり、既定値は NULL です。さまざまな DBMS 製品において、テーブル名には 3 つの要素から成る名前 (qualifier**.owner.**name) がサポートされています。SQL Server では、この列はデータベース名を表します。製品によっては、そのテーブルのデータベース環境のサーバー名を表しています。
  • [ , [ @table_type= ] "'type'" ]
    指定したテーブル型のすべてのテーブルに関する情報を持つ、コンマで区切られた値の一覧です。このテーブル型には、TABLESYSTEMTABLE、および VIEW が含まれます。typevarchar(100) であり、既定値は NULL です。

    ms186250.note(ja-jp,SQL.90).gifメモ :
    テーブル型はそれぞれ単一引用符で囲み、パラメータ全体を二重引用符で囲む必要があります。テーブル型は必ず大文字です。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. AdventureWorks 内のテーブルに関する情報を返す

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

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

参照

関連項目

ストアド プロシージャ カタログ (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 12 月 12 日

新しい内容 :
  • sp_tables ではシノニム オブジェクトに関する情報は返されないことを明記しました。