SQLProcedureColumns は、すべての SQL Server ストアド プロシージャの戻り値属性を報告する 1 行を返します。
SQLProcedureColumnsは、CatalogName、SchemaName、ProcName、または ColumnName パラメーターの値が存在するかどうかをSQL_SUCCESS返します。
SQLFetch は、これらのパラメーターで無効な値が使用されている場合にSQL_NO_DATAを返します。
SQLProcedureColumns は、静的サーバー カーソルで実行できます。 更新可能 (動的またはキーセット) カーソルに対して SQLProcedureColumns を実行しようとすると、カーソルの種類が変更されたことを示すSQL_SUCCESS_WITH_INFOが返されます。
次の表に、結果セットによって返される列と、SQL Server Native Client ODBC ドライバーを介して udt および xml データ型を処理するように列を拡張する方法を示します。
| 列名 | 説明 |
|---|---|
| SS_UDT_CATALOG_NAME | UDT (ユーザー定義型) を含むカタログの名前を返します。 |
| SS_UDT_SCHEMA_NAME | UDT を含むスキーマの名前を返します。 |
| SS_UDT_ASSEMBLY_TYPE_NAME | UDT のアセンブリ修飾名を返します。 |
| SS_XML_SCHEMACOLLECTION_CATALOG_NAME | XML スキーマ コレクション名が定義されているカタログの名前を返します。 カタログ名が見つからない場合は、この変数に空文字列が含まれます。 |
| SS_XML_SCHEMACOLLECTION_SCHEMA_NAME | XML スキーマ コレクション名が定義されているスキーマの名前を返します。 スキーマ名が見つからない場合は、この変数に空文字列が含まれます。 |
| SS_XML_SCHEMACOLLECTION_NAME | XML スキーマ コレクションの名前を返します。 名前が見つからない場合は、この変数に空文字列が含まれます。 |
SQLProcedureColumns とテーブル値パラメーター
SQLProcedureColumns は、CLR ユーザー定義型と同様の方法でテーブル値パラメーターを処理します。 テーブル値パラメーターに対して返される行では、列に次の値が設定されます。
| 列名 | 説明/値 |
|---|---|
| データ型 | SQL_SS_TABLE |
| TYPE_NAME | テーブル値パラメーターのテーブル型の名前。 |
| COLUMN_SIZE | ヌル |
| BUFFER_LENGTH | 0 |
| DECIMAL_DIGITS | テーブル値パラメーターの列数。 |
| NUM_PREC_RADIX | ヌル |
| NULL可能 | SQL_NULLABLE |
| 備考 | ヌル |
| COLUMN_DEF | ヌル。 テーブル型には既定値がない場合があります。 |
| SQL_DATA_TYPE | SQL_SS_TABLE |
| SQL_DATEIME_SUB | ヌル |
| CHAR_OCTET_LENGTH | ヌル |
| IS_NULLABLE | "YES" |
| SS_TYPE_CATALOG_NAME | テーブル型または CLR ユーザー定義型を含むカタログの名前を返します。 |
| SS_TYPE_SCHEMA_NAME | テーブル型または CLR ユーザー定義型を含むスキーマの名前を返します。 |
SQL Server 2008 以降のバージョンでは、テーブル値パラメーターのカタログとスキーマを返すために、SS_TYPE_CATALOG_NAME列とSS_TYPE_SCHEMA_NAME列を使用できます。 テーブル値パラメーターに加え CLR ユーザー定義型パラメーターに対しても、これらの列が作成されます (CLR ユーザー定義型パラメーターの既存のスキーマ列とカタログ列は、この追加機能の影響を受けません。これらは、下位互換性を維持するためにも設定されます)。
ODBC 仕様に準拠して、SS_TYPE_CATALOG_NAMEとSS_TYPE_SCHEMA_NAMEは、以前のバージョンの SQL Server で追加されたすべてのドライバー固有の列の前、および ODBC 自体で義務付けられているすべての列の後に表示されます。
テーブル値パラメーターの詳細については、「 Table-Valued Parameters (ODBC)」を参照してください。
SQLProcedureColumns による機能強化された日付と時刻のサポート
日付/時刻型で返される値については、「 Catalog メタデータ」を参照してください。
一般的な情報については、「 Date and Time Improvements (ODBC)」を参照してください。
SQLProcedureColumns による大きな CLR UDT のサポート
SQLProcedureColumns では、大きな CLR ユーザー定義型 (UDT) がサポートされています。 詳細については、「 Large CLR ユーザー定義型 (ODBC)を参照してください。