資料表值參數組成資料行的描述項欄位
本節所描述的資料表值參數描述項欄位是搭配實作參數描述項 (IPD) 的控制代碼使用 SQLSetDescField 和 SQLSetDescField 來操作的。
備註
SQL_DESC_AUTO_UNIQUE_VALUE 用於資料表值參數與其他功能。
屬性名稱 |
類型 |
描述 |
---|---|---|
SQL_DESC_AUTO_UNIQUE_VALUE |
SQLINTEGER |
SQL_TRUE 表示此資料行是識別資料行。 SQL Server 可以使用這項資訊來最佳化效能,但是不需要應用程式針對識別資料行設定它。 |
下列屬性會加入到應用程式參數描述項 (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 以外的值會產生 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,則不會將任何資料傳送到伺服器。 如果伺服器處理不需要資料行值,此欄位也可以搭配識別或計算資料行使用。 |
這些屬性只適用於資料表值參數資料行。若是其他參數,則會忽略這些屬性。
如果針對資料表值參數資料行設定 SQL_CA_SS_COL_HAS_DEFAULT_VALUE,該資料行的 SQL_DESC_DATA_PTR 必須為 Null 指標。否則,SQLExecute 或 SQLExecDirect 將會傳回 SQL_ERROR。此時,系統會產生含有 SQLSTATE=07S01 和「參數 <p>、資料行 <c> 的預設參數用法無效」訊息的診斷記錄,其中 <p> 是參數序數,而 <c> 是資料行序數。