sp_tables (Transact-SQL)
現在の環境でクエリされるオブジェクトの一覧が返されます。 これは、シノニム オブジェクトを除く、ユーザー テーブルまたはビューを表します。
注 |
---|
シノニムのベース オブジェクトの名前を確認するには、sys.synonyms カタログ ビューをクエリします。 |
構文
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'" ]
指定したテーブル型のすべてのテーブルに関する情報を持つ、コンマで区切られた値の一覧です。 これらは、TABLE、SYSTEMTABLE、および 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_TYPE、TABLE_QUALIFIER、TABLE_OWNER、TABLE_NAME の順序に従って並べ替えられます。
権限
スキーマに対する SELECT 権限が必要です。
使用例
A. 現在の環境でクエリされるオブジェクトの一覧を返す
次の例では、現在の環境でクエリされるオブジェクトの一覧が返されます。
EXEC sp_tables ;
B. 指定したスキーマ内のテーブルに関する情報を返す
次の例では、AdventureWorks2012 データベース内の Person スキーマに属するテーブルに関する情報が返されます。
USE AdventureWorks2012;
GO
EXEC sp_tables
@table_name = '%',
@table_owner = 'Person',
@table_qualifier = 'AdventureWorks2012';