分享方式:


數據表值參數組成數據行的描述項欄位

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Platform System (PDW)

本節所述的數據表值參數描述元字段是使用 SQLSetDescField 和 SQLSetDescField 搭配實作參數描述元的句柄來操作的。

備註

SQL_DESC_AUTO_UNIQUE_VALUE用於數據表值參數和其他功能。

Attribute name 類型​ 描述
SQL_DESC_AUTO_UNIQUE_VALUE SQLINTEGER SQL_TRUE表示此數據行是識別數據行。

SQL Server 可以使用這項資訊來優化效能,但不需要應用程式來設定身分識別數據行。

下列屬性會新增至應用程式參數描述元 (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 和訊息 「無效屬性值」的錯誤,並被視為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>> 是數據行序數。

另請參閱

資料表值參數 (ODBC)