sp_sproc_columns (Transact-SQL)

現在の環境内の単一のストアド プロシージャまたはユーザー定義関数に対する列の情報を返します。

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

構文

sp_sproc_columns [[@procedure_name = ] 'name'] 
    [ , [@procedure_owner = ] 'owner'] 
    [ , [@procedure_qualifier = ] 'qualifier'] 
    [ , [@column_name = ] 'column_name']
    [ , [@ODBCVer = ] 'ODBCVer']
    [ , [@fUsePattern = ] 'fUsePattern']

引数

  • [ @procedure_name = ] 'name'
    カタログ情報を返すために使用するプロシージャの名前を指定します。 name のデータ型は nvarchar(390) で、既定値は % です。% は現在のデータベース内のすべてのテーブルを意味します。 ワイルドカードによるパターン照合がサポートされています。

  • [ @procedure_owner =] 'owner'
    プロシージャの所有者の名前を指定します。 ownerのデータ型は nvarchar(384) で、既定値は NULL です。 ワイルドカードによるパターン照合がサポートされています。 owner を指定しない場合は、基になる DBMS の既定のプロシージャ可視性規則が適用されます。

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

  • [ @procedure_qualifier =] 'qualifier'
    プロシージャ修飾子の名前を指定します。 qualifier のデータ型は sysname で、既定値は NULL です。 さまざまな DBMS 製品において、テーブル名には 3 つの要素から成る名前 (qualifier.owner.name) がサポートされています。 SQL Server では、このパラメーターはデータベース名を表します。 製品によっては、そのテーブルのデータベース環境のサーバー名を表しています。

  • [ @column_name =] 'column_name'
    カタログ情報が 1 列だけ必要な場合に使用する 1 つの列を指定します。 column_name のデータ型は nvarchar(384) で、既定値は NULL です。 column_name を省略した場合、すべての列が返されます。 ワイルドカードによるパターン照合がサポートされています。 相互運用性を最大にするため、ゲートウェイのクライアントでは、ISO 標準のパターン (% と _ のワイルドカード文字) のみを使用してください。

  • [ @ODBCVer =] 'ODBCVer'
    使用している ODBC のバージョンを指定します。 ODBCVer のデータ型は int で、既定値は 2 です。これは、ODBC Version 2.0 を表します。 ODBC Version 2.0 と ODBC Version 3.0 の違いの詳細については、ODBC Version 3.0 の ODBC SQLProcedureColumns の仕様を参照してください。

  • [ @fUsePattern =] 'fUsePattern'
    アンダースコア (_)、パーセント (%)、および角かっこ ([ ]) の各文字がワイルドカードとして解釈されるかどうかを決定します。 有効な値は 0 (パターン一致がオフ) および 1 (パターン一致がオン) です。 fUsePattern のデータ型は bit で、既定値は 1 です。

リターン コードの値

なし

結果セット

列名

データ型

説明

PROCEDURE_QUALIFIER

sysname

プロシージャ修飾子の名前。 この列は、NULL の場合もあります。

PROCEDURE_OWNER

sysname

プロシージャ所有者の名前です。 この列は常に値を返します。

PROCEDURE_NAME

nvarchar(134)

プロシージャの名前です。 この列は常に値を返します。

COLUMN_NAME

sysname

返される TABLE_NAME の各列の列名です。 この列は常に値を返します。

COLUMN_TYPE

smallint

このフィールドは常に値を返します。

0 = SQL_PARAM_TYPE_UNKNOWN

1 = SQL_PARAM_TYPE_INPUT

2 = SQL_PARAM_TYPE_OUTPUT

3 = SQL_RESULT_COL

4 = SQL_PARAM_OUTPUT

5 = SQL_RETURN_VALUE

DATA_TYPE

smallint

ODBC データ型用の整数コードです。 このデータ型が ISO 型にマップできない場合は、値は NULL になります。 ネイティブ データ型の名前は TYPE_NAME 列に返されます。

TYPE_NAME

sysname

データ型を表す文字列です。 これは、基になる DBMS によって表されるデータ型の名前です。

PRECISION

int

有効桁数です。 PRECISION 列に返される値の基数は 10 です。

LENGTH

int

データの転送サイズです。

SCALE

smallint

小数点以下桁数です。

RADIX

smallint

数値型の基数です。

NULLABLE

smallint

NULL 値を許容するかどうかを指定します。

1 = NULL 値を許容するデータ型が作成されます。

0 = NULL 値を許容しません。

REMARKS

varchar(254)

プロシージャの列の説明です。 SQL Server は、この列の値を返しません。

COLUMN_DEF

nvarchar(4000)

列の既定値です。

SQL_DATA_TYPE

smallint

記述子の TYPE フィールドでの SQL データ型の値です。 datetime データ型と ISO interval データ型以外は、DATA_TYPE 列と同じです。 この列は常に値を返します。

SQL_DATETIME_SUB

smallint

SQL_DATA_TYPE の値が SQL_DATETIME または SQL_INTERVAL の場合は、datetime ISO interval サブコードになります。 datetime データ型および ISO interval データ型以外のデータ型では、このフィールドは NULL になります。

CHAR_OCTET_LENGTH

int

character 型または binary 型の列の最大長 (バイト単位) です。 他のすべてのデータ型の場合、この列は NULL を返します。

ORDINAL_POSITION

int

テーブル内での列の序数です。 テーブル内の最初の列は 1 です。 この列は常に値を返します。

IS_NULLABLE

varchar(254)

テーブル内の列の NULL 許可属性です。 NULL 許可属性の検査は ISO のルールに従います。 ISO に準拠している DBMS では、空文字列を返すことはできません。

列が NULL を含むことができる場合は YES、含むことができない場合は NO を表示します。

NULL が許可されているかどうかがわからない列は、長さ 0 の文字列を返します。

この列に返される値は、NULLABLE 列に返される値とは異なります。

SS_DATA_TYPE

tinyint

拡張ストアド プロシージャで使用される SQL Server データ型です。 詳細については、「データ型 (Transact-SQL)」を参照してください。

説明

sp_sproc_columns は ODBC の SQLProcedureColumns に相当します。 返される結果は、PROCEDURE_QUALIFIERPROCEDURE_OWNERPROCEDURE_NAME、およびプロシージャ定義の中でのパラメーターの並び順に従って並べ替えられます。

権限

スキーマに対する SELECT 権限が必要です。

関連項目

参照

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

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