テーブル値パラメーターを構成する列の記述子フィールド
このセクションで説明するテーブル値パラメーター記述子フィールドは、実装パラメーター記述子 (IPD) のハンドルと 共に SQLSetDescField と SQLSetDescField を使用して操作されます。
解説
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> は列序数です。