sp_columns_ex (Transact-SQL)

適用対象:SQL Server

指定したリンク サーバー テーブルに対し、1 列あたり 1 行の列情報を返します。 sp_columns_ex は、column が指定されている場合、特定の列についてのみ 情報を返します。

Transact-SQL 構文表記規則

構文

  
sp_columns_ex [ @table_server = ] 'table_server'   
     [ , [ @table_name = ] 'table_name' ]   
     [ , [ @table_schema = ] 'table_schema' ]   
     [ , [ @table_catalog = ] 'table_catalog' ]   
     [ , [ @column_name = ] 'column' ]   
     [ , [ @ODBCVer = ] 'ODBCVer' ]  

引数

[ @table_server = ] 'table_server' 列情報を返すリンク サーバーの名前です。 table_serversysname で、既定値はありません。

[ @table_name = ] 'table_name' 列情報を返すテーブルの名前を指定します。 table_namesysname で、既定値は NULL です。

[ @table_schema = ] 'table_schema' 列情報を返すテーブルのスキーマ名です。 table_schemasysname で、既定値は NULL です。

[ @table_catalog = ] 'table_catalog' 列情報を返すテーブルのカタログ名です。 table_catalogsysname で、既定値は NULL です。

[ @column_name = ] 'column' 情報を提供するデータベース列の名前です。 columnsysname で、既定値は NULL です。

[ @ODBCVer = ] 'ODBCVer' 使用されている ODBC のバージョンです。 ODBCVerint で、既定値は 2 です。 これは ODBC バージョン 2 を示します。 有効な値は 2 または 3 です。 バージョン 2 と 3 の動作の相違については、ODBC の SQLColumns 仕様を参照してください。

リターン コードの値

なし

結果セット

列名 データ型 説明
TABLE_CAT sysname テーブルまたはビュー修飾子の名前。 さまざまな DBMS 製品では、テーブルの 3 部構成の名前付け (修飾子) がサポートされています。所有者name)。 SQL Serverでは、この列はデータベース名を表します。 一部の製品では、テーブルのデータベース環境のサーバー名を表します。 このフィールドには NULL を指定できます。
TABLE_SCHEM sysname テーブルまたはビュー所有者の名前。 SQL Serverでは、この列はテーブルを作成したデータベース ユーザーの名前を表します。 このフィールドは常に値を返します。
Table_name sysname テーブルまたはビューの名前。 このフィールドは常に値を返します。
COLUMN_NAME sysname 返される TABLE_NAME の各列の列名。 このフィールドは常に値を返します。
DATA_TYPE smallint ODBC のデータ型を表す整数値。 ODBC のデータ型にマップできないデータ型の場合、この値は NULL になります。 ネイティブ データ型名は 、TYPE_NAME 列に返されます。
TYPE_NAME varchar(13) データ型を表す文字列。 基になる DBMS には、このデータ型名が表示されます。
COLUMN_SIZE int 有効桁数。 PRECISION 列の戻り値は、底 10 です。
BUFFER_LENGTH int データの転送サイズ。1
DECIMAL_DIGITS smallint 小数点の右側の桁数。
NUM_PREC_RADIX smallint 数値型の基数。
NULLABLE smallint null 値の許容を指定します。

1 = NULL 値を許容します。

0 = NULL 値を許容しません。
備考 varchar(254) このフィールドは常に NULL を返します。
COLUMN_DEF varchar(254) 列の既定値です。
SQL_DATA_TYPE smallint 記述子の TYPE フィールドでの SQL データ型の値です。 この列は、datetime データ型と SQL-92 間隔データ型を除き、DATA_TYPE列と同じです。 この列は常に値が返されます。
SQL_DATETIME_SUB smallint datetime データ型と SQL-92 間隔データ型のサブタイプ コード。 他のデータ型の場合、この列は NULL を返します。
CHAR_OCTET_LENGTH int 文字型または整数型の列の最大長 (バイト単位)。 その他のすべてのデータ型の場合、この列は NULL を返します。
ORDINAL_POSITION int テーブル内の列の序数位置。 テーブルの最初の列は 1 です。 この列は常に値が返されます。
IS_NULLABLE varchar(254) テーブル内の列の Null 許容性。 ISO 規則に従って null 値の許容を判断します。 ISO SQL 準拠の DBMS は、空の文字列を返すことができません。

YES = 列に NULL を含むことができます。

NO = 列に NULLS を含めることはできません。

null 許容性が不明な場合、この列は長さ 0 の文字列を返します。

この列に対して返される値は、 NULLABLE 列に返される値とは異なります。
SS_DATA_TYPE tinyint SQL Serverデータ型。拡張ストアド プロシージャで使用されます。

1 詳細については、Microsoft ODBC のドキュメントを参照してください。

解説

  • sp_columns_ex は、table_serverに対応する OLE DB プロバイダーの IDBSchemaRowset インターフェイスの COLUMNS 行 セットに対してクエリを実行することによって実行されます。 table_nametable_schematable_catalog、列の各パラメーターをこのインターフェイスに渡して、返される行を制限します。

  • 指定 したリンク サーバーの OLE DB プロバイダーが IDBSchemaRowset インターフェイスの COLUMNS 行セットをサポートしていない場合、sp_columns_exは空の結果セットを返します。

  • sp_columns_ex は、区切られた識別子の要件に従います。 詳細については、「データベース識別子」を参照してください。

アクセス許可

スキーマに対する SELECT アクセス許可が必要です。

次の例では、リンク サーバー JobTitle 上の AdventureWorks2022 データベースにある、HumanResources.Employee テーブルの Seattle1 列のデータ型を返します。

EXEC sp_columns_ex 'Seattle1',   
   'Employee',   
   'HumanResources',   
   'AdventureWorks2022',   
   'JobTitle';  

参照

sp_catalogs (Transact-SQL)
sp_foreignkeys (Transact-SQL)
sp_indexes (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_primarykeys (Transact-SQL)
sp_tables_ex (Transact-SQL)
sp_table_privileges (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)