sp_sproc_columns (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 の既定のプロシージャ可視性規則が適用されます。SQL Server 2005 では、指定した名前のプロシージャを現在のユーザーが所有している場合、そのプロシージャの情報が返されます。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 を省略した場合、すべての列が返されます。ワイルドカードによるパターン照合がサポートされています。相互運用機能を最大にするため、ゲートウェイのクライアントでは、SQL-92 標準のパターン検索 (% と _ ワイルドカード文字) のみを前提にしてください。
- [ @ODBCVer =] 'ODBCVer'
使用している ODBC のバージョンを指定します。ODBCVer のデータ型は int で、既定値は 2 です。2 は ODBC バージョン 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 データ型用の整数コードです。このデータ型が SQL-92 型にマップできない場合は、値は 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 データ型と SQL-92 interval データ型以外は、DATA_TYPE 列と同じです。この列は常に値を返します。 |
SQL_DATETIME_SUB |
smallint |
SQL_DATA_TYPE の値が SQL_DATETIME または SQL_INTERVAL の場合は、datetime SQL-92 interval サブコードになります。datetime データ型および SQL-92 interval データ型以外のデータ型では、このフィールドは NULL になります。 |
CHAR_OCTET_LENGTH |
int |
character 型または binary 型の列の最大長 (バイト単位) です。他のすべてのデータ型の場合、この列は NULL を返します。 |
ORDINAL_POSITION |
int |
テーブル内での列の序数です。テーブルの先頭列は 1 です。この列は常に値を返します。 |
IS_NULLABLE |
varchar(254) |
テーブル内の列の NULL 許可属性です。NULL 許可属性の検査は ISO のルールに従います。ISO SQL に準拠した DBMS は空文字列を返すことはできません。 列が NULL を含むことができる場合は YES、含むことができない場合は NO を表示します。 NULL が許可されているかどうかがわからない列は、長さ 0 の文字列を返します。 この列に返される値は、NULLABLE 列に返される値とは異なります。 |
SS_DATA_TYPE |
tinyint |
拡張ストアド プロシージャで使用される SQL Server データ型です。詳細については、「データ型 (Transact-SQL)」を参照してください。 |
解説
sp_sproc_columns は ODBC の SQLProcedureColumns に相当します。返される結果は、PROCEDURE_QUALIFIER、PROCEDURE_OWNER、PROCEDURE_NAME、およびプロシージャ定義の中でのパラメータの並び順に従って並べ替えられます。
権限
スキーマに対する SELECT 権限が必要です。
戻り値
なし
参照
関連項目
ストアド プロシージャ カタログ (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)