テーブル値パラメーターを構成する列の記述子フィールド
適用対象: 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> は列序数です。