資料表值參數組成資料行的描述項欄位
本節所述的資料表值參數描述元欄位是使用 SQLSetDescField 和 SQLSetDescField 搭配實作參數描述元的控制碼來操作, (IPD) 。
備註
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 - 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,則不會將任何資料傳送到伺服器。 如果伺服器處理不需要資料行值,此欄位也可以搭配識別或計算資料行使用。 |
這些屬性只適用於資料表值參數資料行。 若是其他參數,則會忽略這些屬性。
如果針對資料表值參數資料行設定 SQL_CA_SS_COL_HAS_DEFAULT_VALUE,該資料行的 SQL_DESC_DATA_PTR 必須為 Null 指標。 否則,SQLExecute 或 SQLExecDirect 會傳回SQL_ERROR。 系統會使用 SQLSTATE=07S01 產生診斷記錄,而訊息「無效使用參數 < p、 column < c > 的預設參數」,其中 < p >> 是參數序數, < 而 c > 是資料行序數。