sp_columns_ex (Transact-SQL)
適用対象: SQL Server
指定したリンク サーバー テーブルに対し、1 列あたり 1 行の列情報を返します。 sp_columns_ex
は、 @column_name が指定されている場合、特定の列についてのみ列情報を返します。
構文
sp_columns_ex
[ @table_server = ] N'table_server'
[ , [ @table_name = ] N'table_name' ]
[ , [ @table_schema = ] N'table_schema' ]
[ , [ @table_catalog = ] N'table_catalog' ]
[ , [ @column_name = ] N'column_name' ]
[ , [ @ODBCVer = ] ODBCVer ]
[ ; ]
引数
[ @table_server = ] N'table_server'
列情報を返すリンク サーバーの名前。 @table_server は sysname で、既定値はありません。
[ @table_name = ] N'table_name'
列情報を返すテーブルの名前。 @table_name は sysname で、既定値は NULL
です。
[ @table_schema = ] N'table_schema'
列情報を返すテーブルのスキーマ名。 @table_schema は sysname で、既定値は NULL
です。
[ @table_catalog = ] N'table_catalog'
列情報を返すテーブルのカタログ名。 @table_catalog は sysname で、既定値は NULL
です。
[ @column_name = ] N'column_name'
情報を提供するデータベース列の名前。 @column_name は sysname で、既定値は NULL
です。
[ @ODBCVer = ] ODBCVer
使用されている ODBC のバージョン。 @ODBCVer は int で、既定値は 2
です。 これは ODBC バージョン 2 を示します。 有効な値は 2
または 3
です。 バージョン 2 と 3 の動作の違いについては、ODBC SQLColumns
仕様を参照してください。
リターン コードの値
なし。
結果セット
列名 | データ型 | 説明 |
---|---|---|
TABLE_CAT |
sysname | テーブルまたはビュー修飾子の名前。 さまざまな DBMS 製品では、テーブルの 3 部構成の名前付け (<qualifier>.<owner>.<name> ) がサポートされています。 SQL Server では、この列はデータベース名を表します。 一部の製品では、テーブルのデータベース環境のサーバー名を表します。 このフィールドは NULL できます。 |
TABLE_SCHEM |
sysname | テーブルまたはビュー所有者の名前。 SQL Server では、この列はテーブルを作成したデータベース ユーザーの名前を表します。 このフィールドには常に値が返されます。 |
TABLE_NAME |
sysname | テーブルまたはビューの名前。 このフィールドには常に値が返されます。 |
COLUMN_NAME |
sysname | 返される TABLE_NAME の各列の列名。 このフィールドには常に値が返されます。 |
DATA_TYPE |
smallint | ODBC 型インジケーターに対応する int 値。 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 = NOT NULL . |
REMARKS |
varchar(254) | このフィールドは常に NULL を返します。 |
COLUMN_DEF |
varchar(254) | 列の既定値です。 |
SQL_DATA_TYPE |
smallint | 記述子の TYPE フィールドに表示される SQL データ型の値。 この列は、datetime および SQL-92 interval データ型を除き、DATA_TYPE 列と同じです。 この列は常に値が返されます。 |
SQL_DATETIME_SUB |
smallint | datetime および SQL-92 の interval データ型のサブタイプ コード。 その他のデータ型の場合、この列は NULL を返します。 |
CHAR_OCTET_LENGTH |
int | 文字型または整数型の列の最大長 (バイト単位)。 その他のすべてのデータ型の場合、この列は NULL を返します。 |
ORDINAL_POSITION |
int | テーブル内の列の序数位置。 テーブルの最初の列は 1 です。 この列は常に値が返されます。 |
IS_NULLABLE |
varchar(254) | テーブル内の列の NULL 値の許容。 ISO の規則に従って、NULL 値の許容が判断されます。 ISO SQL 準拠の DBMS は空の文字列を返すことはできません。YES = 列には NULL を含めることができます。NO = 列に NULL を含めることはできません。NULL 値の許容が不明な場合、この列は長さ 0 の文字列になります。 この列に対して返される値は、 NULLABLE 列に対して返される値とは異なります。 |
SS_DATA_TYPE |
tinyint | 拡張ストアド プロシージャで使用される SQL Server データ型。 |
詳細については、「 ODBC の概要を参照してください。
解説
sp_columns_ex
は、@table_serverに対応する OLE DB プロバイダーのIDBSchemaRowset
インターフェイスのCOLUMNS
行セットに対してクエリを実行することによって実行されます。 @table_name、@table_schema、@table_catalog、および@column_nameパラメーターがこのインターフェイスに渡され、返される行が制限されます。sp_columns_ex
指定したリンク サーバーの OLE DB プロバイダーが、IDBSchemaRowset
インターフェイスのCOLUMNS
行セットをサポートしていない場合は、空の結果セットが返されます。sp_columns_ex
は、区切り記号付き識別子の要件に従います。 詳細については、「 Database 識別子」を参照してください。
アクセス許可
スキーマに対する SELECT
アクセス許可が必要です。
例
次の例では、リンク サーバー JobTitle
上の AdventureWorks2022
データベースにある、HumanResources.Employee
テーブルの Seattle1
列のデータ型を返します。
EXEC sp_columns_ex 'Seattle1',
'Employee',
'HumanResources',
'AdventureWorks2022',
'JobTitle';