次の方法で共有


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

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

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

解説

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

Attribute name タイプ 説明
SQL_DESC_AUTO_UNIQUE_VALUE SQLINTEGER SQL_TRUE はこの列が ID 列であることを示します。

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

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

Attribute name タイプ 説明
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 およびメッセージ 'Invalid attribute value' でエラーを生成し、この属性の既定値である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)