sp_sproc_columns (Transact-SQL)

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric のSQL 分析エンドポイント Microsoft Fabric のウェアハウス

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

Transact-SQL 構文表記規則

構文

sp_sproc_columns
    [ [ @procedure_name = ] N'procedure_name' ]
    [ , [ @procedure_owner = ] N'procedure_owner' ]
    [ , [ @procedure_qualifier = ] N'procedure_qualifier' ]
    [ , [ @column_name = ] N'column_name' ]
    [ , [ @ODBCVer = ] ODBCVer ]
    [ , [ @fUsePattern = ] fUsePattern ]
[ ; ]

引数

[ @procedure_name = ] N'procedure_name'

カタログ情報を返すために使用するプロシージャの名前。 @procedure_namenvarchar(390) で、既定値は % です。これは、現在のデータベース内のすべてのテーブルを意味します。 ワイルドカードのパターン マッチングがサポートされています。

[ @procedure_owner = ] N'procedure_owner'

プロシージャの所有者の名前。 @procedure_ownernvarchar(384) で、既定値は NULL です。 ワイルドカードのパターン マッチングがサポートされています。 @procedure_ownerが指定されていない場合は、基になるデータベース管理システム (DBMS) の既定のプロシージャ可視性ルールが適用されます。

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

[ @procedure_qualifier = ] N'procedure_qualifier'

プロシージャ修飾子の名前。 @procedure_qualifiersysname で、既定値は NULL です。 さまざまな DBMS 製品では、テーブルの 3 部構成の名前付け (<qualifier>.<owner>.<name>) がサポートされています。 SQL Server では、このパラメーターはデータベース名を表します。 一部の製品では、テーブルのデータベース環境のサーバー名を表します。

[ @column_name = ] N'column_name'

1 つの列で、カタログ情報の列が 1 つだけ必要な場合に使用されます。 @column_namenvarchar(384) で、既定値は NULL です。 @column_nameを省略すると、すべての列が返されます。 ワイルドカードのパターン マッチングがサポートされています。 相互運用性を最大限に高める場合、ゲートウェイ クライアントは ISO 標準パターン マッチング (% および _ ワイルドカード文字) のみを想定する必要があります。

[ @ODBCVer = ] ODBCVer

使用されている ODBC のバージョン。 @ODBCVerint で、既定値は 2 で、ODBC バージョン 2.0 を示します。 ODBC バージョン 2.0 と ODBC バージョン 3.0 の違いの詳細については、ODBC バージョン 3.0 の ODBC SQLProcedureColumns 仕様を参照してください。

[ @fUsePattern = ] fUsePattern

アンダースコア (_)、パーセント (%)、角かっこ ([ および ]) 文字をワイルドカード文字として解釈するかどうかを決定します。 @fUsePatternbit で、既定値は 1 です。 有効な値は 0 (パターン マッチングがオフ) と 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 datetime ISO interval サブコード (SQL_DATA_TYPEの値がSQL_DATETIMEまたはSQL_INTERVALの場合)。 datetime および ISO interval 以外のデータ型の場合、このフィールドはNULL
CHAR_OCTET_LENGTH int 文字型または binary データ型列の最大長 (バイト単位)。 その他のすべてのデータ型の場合、この列は NULLを返します。
ORDINAL_POSITION int テーブル内の列の序数位置。 テーブルの最初の列は 1。 この列は常に値が返されます。
IS_NULLABLE varchar(254) テーブル内の列の NULL 値の許容。 ISO の規則に従って、NULL 値の許容が判断されます。 ISO 準拠の DBMS は空の文字列を返すことはできません。

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

NULL 値の許容が不明な場合、この列は長さ 0 の文字列になります。

この列に対して返される値は、 NULLABLE 列に対して返される値とは異なります。
SS_DATA_TYPE tinyint 拡張ストアド プロシージャによって使われる SQL Server のデータ型。 詳細については、「 Data 型 (Transact-SQL)」を参照してください。

解説

sp_sproc_columns は ODBC の SQLProcedureColumns と同じです。 返される結果は、 PROCEDURE_QUALIFIERPROCEDURE_OWNERPROCEDURE_NAME、およびパラメーターがプロシージャ定義に表示される順序で並べ替えます。

アクセス許可

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