テーブル値パラメーターを構成する列の記述子フィールド

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

このセクションで説明するテーブル値パラメーター記述子フィールドは、実装パラメーター記述子 (IPD) のハンドルと 共に SQLSetDescFieldSQLSetDescField を使用して操作されます。

注釈

SQL_DESC_AUTO_UNIQUE_VALUE は、その他の機能と同様にテーブル値パラメーターで使用されます。

属性名 説明
SQL_DESC_AUTO_UNIQUE_VALUE SQLINTEGER SQL_TRUE はこの列が ID 列であることを示します。

SQL Serverこの情報を使用してパフォーマンスを最適化できますが、アプリケーションで ID 列に設定する必要はありません。

アプリケーション パラメーター記述子 (APD) および実装パラメーター記述子 (IPD) のすべてのパラメーターの型に追加される属性を次に示します。

属性名 説明
SQL_CA_SS_COLUMN_COMPUTED SQLSMALLINT SQL_TRUE はこの列が計算列であることを示します。

SQL Serverは、この情報を使用してパフォーマンスを最適化できますが、計算列に設定するアプリケーションは必要ありません。

テーブル値パラメーターの列以外のバインドでは、この属性は無視されます。
SQL_CA_SS_COLUMN_IN_UNIQUE_KEY SQLSMALLINT SQL_TRUE はテーブル値パラメーターの列が一意キーに参加することを示します。 これにより、クエリのパフォーマンスが向上します。 テーブル値パラメーターの列以外のバインドでは、この属性は無視されます。
SQL_CA_SS_COLUMN_SORT_ORDER SQLSMALLINT テーブル値パラメーターの列の並べ替え順を示します。 これにより、クエリのパフォーマンスが向上します。 テーブル値パラメーターの列以外のバインドでは、この属性は無視されます。 使用できる値を次に示します。
SQL_SS_ASCENDING_ORDER
SQL_SS_DESCENDING_ORDER
SQL_SS_ORDER_UNSPECIFIED

SQL_SS_ASCENDING_ORDER および SQL_SS_DESCENDING_ORDER 以外の値を指定するとSQLSTATE HY024 とメッセージ '無効な属性値' でエラーが生成され、SQL_SS_ORDER_UNSPECIFIEDとして扱われます。これは、この属性の既定値です。
SQL_CA_SS_COLUMN_SORT_ORDINAL SQLSMALLINT テーブル値パラメーターの全体的な順序を定義する列セット内における、テーブル値パラメーター列の序数を示します。 これにより、クエリのパフォーマンスが向上します。 テーブル値パラメーターの列以外のバインドでは、この属性は無視されます。 並べ替えの序数は 1 から始まります。 値が 0 (既定値) の場合は、テーブル値パラメーターの列に列の順序が設定されていないことを示します。
SQL_CA_SS_COLUMN_HAS_DEFAULT_VALUE SQLSMALLINT テーブル値パラメーターのすべての行にこの列の既定値が設定されるかどうかを示します。 テーブル値パラメーターの場合、行ごとに既定値を選択できません。 値が SQL_FALSE の場合は、行に既定値以外の値が設定されることを示します。 既定値です。 値が SQL_TRUE の場合は、この列のすべての行に既定値が設定されることを示します。

SQL_TRUE に設定されている場合、データはサーバーに送信されません。

列の値がサーバー処理で不要な場合、このフィールドは ID 列または計算列でも使用することができます。

これらの属性は、テーブル値パラメーターの列に対してのみ有効です。 他のパラメーターでは無視されます。

テーブル値パラメーターの列に SQL_CA_SS_COL_HAS_DEFAULT_VALUE を設定する場合は、その列の SQL_DESC_DATA_PTR が NULL ポインターである必要があります。 それ以外の場合、SQLExecute または SQLExecDirect はSQL_ERRORを返します。 診断レコードは SQLSTATE=07S01 で生成され、"パラメーター <p>、 列 <c> の既定のパラメーターが無効です" というメッセージが表示されます。ここで <、p> はパラメーター序数、 <c> は列序数です。

参照

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