sp_columns_ex (Transact-SQL)
指定したリンク サーバー テーブルに対し、1 列あたり 1 行の列情報を返します。column を指定した場合、sp_columns_ex では特定列のみの列情報が返されます。
構文
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_server のデータ型は sysname で、既定値はありません。[ @table_name = ] 'table_name'
列情報を返すテーブルの名前を指定します。table_name のデータ型は sysname で、既定値は NULL です。[ @table_schema = ] 'table_schema'
列情報を返すテーブルのスキーマ名を指定します。table_schema のデータ型は sysname で、既定値は NULL です。[ @table_catalog = ] 'table_catalog'
列情報を返すテーブルのカタログ名を指定します。table_catalog のデータ型は sysname で、既定値は NULL です。[ @column_name = ] 'column'
情報を提供するデータベース列の名前を指定します。column のデータ型は sysname で、既定値は NULL です。[ @ODBCVer = ] 'ODBCVer'
使用している ODBC のバージョンを指定します。ODBCVer のデータ型は int で、既定値は 2 です。既定値の 2 は ODBC Version 2 を示します。有効な値は 2 または 3 です。バージョン 2 と 3 の動作の相違については、ODBC の SQLColumns 仕様を参照してください。
リターン コード値
なし
結果セット
列名 |
データ型 |
説明 |
---|---|---|
TABLE_CAT |
sysname |
テーブルまたはビュー修飾子の名前。さまざまな DBMS 製品で、3 つの要素で構成されたテーブル名 (qualifier.owner.name) を使用できます。SQL Server 2008 および SQL Server 2005 では、この列はデータベース名を表します。製品によっては、テーブルのデータベース環境のサーバー名を表す場合があります。このフィールドは 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 値を許容しません。 |
REMARKS |
varchar(254) |
このフィールドは常に NULL を返します。 |
COLUMN_DEF |
varchar(254) |
列の既定値。 SQL Server 2008 と SQL Server 2005 では、SQL 式をデコードしてカタログ メタデータに格納する方法が SQL Server 2000 と異なります。デコードされた式のセマンティクスは元のテキストと同じですが、構文も同じであるとは限りません。たとえば、デコードされた式からは空白文字が削除されます。詳細については、「SQL Server 2008 におけるデータベース エンジン機能の動作の変更」を参照してください。 |
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 のデータ型。拡張ストアド プロシージャにより使用されます。詳細については、「データ型 (データベース エンジン)」を参照してください。 |
1 詳細については、Microsoft ODBC のドキュメントを参照してください。
説明
sp_columns_ex は、table_server に対応する OLE DB プロバイダの IDBSchemaRowset インターフェイスの COLUMNS 行セットをクエリすることにより実行されます。table_name、table_schema、table_catalog、および column の各パラメータは、返される行を制限するために、このインターフェイスに渡されます。
指定されたリンク サーバーの OLE DB プロバイダで IDBSchemaRowset インターフェイスの COLUMNS 行セットがサポートされない場合、sp_columns_ex では空の結果セットが返されます。
sp_columns_ex は、区切られた識別子に必要な要件に従います。詳細については、「区切られた識別子 (データベース エンジン)」を参照してください。
権限
スキーマに対する SELECT 権限が必要です。
使用例
次の例では、リンク サーバー Seattle1 上の AdventureWorks データベースにある、HumanResources.Employee テーブルの Title 列のデータ型を返します。
EXEC sp_columns_ex 'Seattle1',
'Employee',
'HumanResources',
'AdventureWorks',
'Title';