次の方法で共有


テーブル値パラメーターの追加メタデータ

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

テーブル値パラメーターのメタデータを取得するために、アプリケーションは SQLProcedureColumns を呼び出します。 テーブル値パラメーターの場合、SQLProcedureColumns は 1 行を返します。 テーブル値パラメーターに関連付けられたテーブル型のスキーマとカタログ情報を提供するために、SQL Server 固有の 2 つの列 (SS_TYPE_CATALOG_NAMEとSS_TYPE_SCHEMA_NAME) が追加されました。 ODBC 仕様に準拠して、SS_TYPE_CATALOG_NAMEとSS_TYPE_SCHEMA_NAMEは、以前のバージョンの SQL Server で追加されたすべてのドライバー固有の列の前、および ODBC 自体によって義務付けられているすべての列の後に表示されます。

テーブル値パラメーターにとって重要な列を次の表に示します。

列名 データ型 値およびコメント
DATA_TYPE Smallint (NULL 以外) SQL_SS_TABLE
TYPE_NAME WVarchar(128) (NULL 以外) テーブル値パラメーターの型名
COLUMN_SIZE Integer NULL
BUFFER_LENGTH Integer 0
DECIMAL_DIGITS Smallint NULL
NUM_PREC_RADIX Smallint NULL
NULLABLE Smallint (NULL 以外) SQL_NULLABLE
REMARKS Varchar NULL
COLUMN_DEF WVarchar(4000) NULL
SQL_DATA_TYPE Smallint (NULL 以外) SQL_SS_TABLE
SQL_DATETIME_SUB Smallint NULL
CHAR_OCTET_LENGTH Integer NULL
ORDINAL_POSITION Integer (NULL 以外) パラメーターの序数位置。
IS_NULLABLE Varchar "YES"
SS_TYPE_CATALOG_NAME WVarchar(128) (NULL 以外) テーブル値パラメーターのテーブル型の型定義が格納されているカタログ。
SS_TYPE_SCHEMA_NAME WVarchar(128) (NULL 以外) テーブル値パラメーターのテーブル型の型定義が格納されているスキーマ。

WVarchar 列は ODBC 仕様では Varchar として定義されていますが、実際には最近のすべての SQL Server ODBC ドライバーで WVarchar として返されます。 この変更は、ODBC 3.5 仕様に Unicode のサポートが追加されたときに行われましたが、明示されていませんでした。

テーブル値パラメーターの追加メタデータを取得するために、アプリケーションはカタログ関数 SQLColumns と SQLPrimaryKeys を使用します。 これらの関数がテーブル値パラメーターのために呼び出される前に、アプリケーションでは、ステートメント属性 SQL_SOPT_SS_NAME_SCOPE を SQL_SS_NAME_SCOPE_TABLE_TYPE に設定する必要があります。 この値は、アプリケーションが実際のテーブルではなくテーブル型のメタデータを必要としていることを示します。 その後、アプリケーションはテーブル値パラメーターのTYPE_NAMEを TableName パラメーターとして渡します。 SS_TYPE_CATALOG_NAMEとSS_TYPE_SCHEMA_NAMEは、テーブル値パラメーターのカタログとスキーマを識別するために、それぞれ CatalogName パラメーターと SchemaName パラメーターと共に使用されます。 テーブル値パラメーターのメタデータの取得が完了すると、アプリケーションによって、SQL_SOPT_SS_NAME_SCOPE は既定値 SQL_SS_NAME_SCOPE_TABLE に設定し直す必要があります。

SQL_SOPT_SS_NAME_SCOPE が SQL_SS_NAME_SCOPE_TABLE に設定されると、リンク サーバーへのクエリは失敗します。 サーバー コンポーネントを含むカタログを含む SQLColumns または SQLPrimaryKeys の呼び出しは失敗します。

参照

テーブル値パラメーター (ODBC)