資料類型使用方式

SQL Server Native Client ODBC 驅動程式和 SQL Server 提供下列的資料類型用法。

資料類型

限制

日期常值

當日期常值儲存於 SQL_TYPE_TIMESTAMP 資料行 ( datetimesmalldatetime 的 SQL Server 資料類型) 時,具有 12:00:00.000 A.M. 的時間值。

moneysmallmoney

moneysmallmoney 資料類型只有整數部分是有效的。 如果在資料類型轉換時截斷了 SQL money 資料的小數部分,則 SQL Server Native Client ODBC 驅動程式會傳回警告,而不是錯誤。

SQL_BINARY (可為 Null)

連接到 SQL Server 6.0 版和更早版本時,如果 SQL_BINARY 資料行可為 Null,則儲存在資料來源中的資料就不會以零進行填補。 從此類資料行擷取資料時,SQL Server Native Client ODBC 驅動程式會在資料右側以零進行填補。 不過,在 SQL Server 所執行的作業 (例如串連) 中建立的資料就沒有此類填補。

此外,當資料是放在 SQL Server 6.0 或更早版本之執行個體的此類資料行中,且資料太長而無法放入資料行時,SQL Server 就會從右側截斷資料。

[!附註]

SQL Server Native Client ODBC 驅動程式不支援與 SQL Server 6.5 和更早版本的連接。

SQL_CHAR (截斷)

如果是連接到 SQL Server 6.0 和更早版本的執行個體,而且資料是放在 SQL_CHAR 資料行中,則在資料太長無法放入資料行時,SQL Server 會在未提供警告的情況下從右側截斷資料。

[!附註]

SQL Server Native Client ODBC 驅動程式不支援與 SQL Server 6.5 和更早版本的連接。

SQL_CHAR (可為 Null)

當連接到 SQL Server 6.0 和更早版本時,如果 SQL_CHAR 資料行可為 Null,則儲存在資料來源中的資料就不會以空白進行填補。 從此類資料行擷取資料時,SQL Server Native Client ODBC 驅動程式會在資料右側以空白進行填補。 不過,在 SQL Server 所執行的作業 (例如串連) 中建立的資料就沒有此類填補。

[!附註]

SQL Server Native Client ODBC 驅動程式不支援與 SQL Server 6.5 和更早版本的連接。

SQL_LONGVARBINARY、SQL_LONGVARCHAR、SQL_WLONGVARCHAR

與 SQL Server 6.x 和更新版本的執行個體連接時,完全支援 (使用 WHERE 子句) 具有 SQL_LONGVARBINARY、SQL_LONGVARCHAR 或 SQL_WLONGVARCHAR 資料類型的資料行更新,此種更新作業會影響多個資料列。 當連接到 SQL Server 4.2x 的執行個體時,如果更新所影響的資料列多於一個,就會傳回 S1000 錯誤「部分插入/更新。 文字或影像資料行的插入/更新未成功」。

[!附註]

SQL Server Native Client ODBC 驅動程式不支援與 SQL Server 6.5 和更早版本的連接。

字串函數參數

字串函數的 string_exp 參數必須是 SQL_CHAR 或 SQL_VARCHAR 資料類型。 字串函數中不支援 SQL_LONG_VARCHAR 資料類型。 count 參數必須少於或等於 8,000,因為 SQL_CHAR 和 SQL_VARCHAR 資料類型受限於 8,000 字元的最大長度。

時間常值

當時間常值儲存於 SQL_TYPE_TIMESTAMP 資料行 ( datetimesmalldatetime 的 SQL Server 資料類型) 時,具有 January 1, 1900 的日期值。

timestamp

只有 NULL 值可以用手動方式插入至 timestamp 資料行。 不過,因為 timestamp 資料行會由 SQL Server 自動更新,所以 NULL 值會遭到覆寫。

tinyint

SQL Server tinyint 資料類型不帶正負號。 tinyint 資料行依預設會繫結到 SQL_C_UTINYINT 資料類型的變數。

別名資料類型

當連接到 SQL Server 4.2x 的執行個體時,ODBC 驅動程式會將 NULL 加入至沒有明確宣告資料行 Null 屬性的資料行定義, 因此會忽略儲存在別名資料類型定義中的 Null 屬性。

當連接到 SQL Server 4.2x 的執行個體時,具有別名資料類型的資料行並擁有 charbinary 基底資料類型且沒有宣告任何 Null 屬性的資料行,會建立為 varcharvarbinary 資料類型。 SQLColAttributeSQLColumnsSQLDescribeCol 會傳回 SQL_VARCHAR 或 SQL_VARBINARY 當做這些資料行的資料類型。 從這些資料行所擷取的資料不會進行填補。

[!附註]

SQL Server Native Client ODBC 驅動程式不支援與 SQL Server 6.5 和更早版本的連接。

LONG 資料類型

data-at-execution 參數僅能用於 SQL_LONGVARBINARY 和 SQL_LONGVARCHAR 資料類型。

大型值類型

SQL Server Native Client ODBC 驅動程式會在接受或傳回 ODBC SQL 資料類型的 API 中,將 varchar(max)varbinary(max)nvarchar(max) 類型分別公開為 SQL_VARCHAR、SQL_VARBINARY 和 SQL_WVARCHAR。

使用者定義型別 (UDT)

UDT 資料行會對應為 SQL_SS_UDT。 如果 UDT 資料行使用 UDT 的 ToString() 或 ToXMLString() 方法或是透過 CAST/CONVERT 函數而明確地對應到 SQL 陳述式中的其他類型,則結果集內的資料行類型會反映出此資料行轉換成的實際類型。

SQL Server Native Client ODBC 驅動程式只能以二進位繫結到 UDT 資料行。 SQL Server 只支援 SQL_SS_UDT 和 SQL_C_BINARY 資料類型之間的轉換。

XML

SQL Server 會自動將 XML 轉換為 Unicode 文字。 XML 類型會對應為 SQL_SS_XML。

請參閱

概念

處理結果 (ODBC)