資料類型使用方式
SQL Server Native Client ODBC 驅動程式和 SQL Server 提供下列的資料類型用法。
資料類型 |
限制 |
---|---|
日期常值 |
當日期常值儲存於 SQL_TYPE_TIMESTAMP 資料行 ( datetime 或 smalldatetime 的 SQL Server 資料類型) 時,具有 12:00:00.000 A.M. 的時間值。 |
money 和 smallmoney |
money 和 smallmoney 資料類型只有整數部分是有效的。 如果在資料類型轉換時截斷了 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_CHAR (截斷) |
如果是連接到 SQL Server 6.0 和更早版本的執行個體,而且資料是放在 SQL_CHAR 資料行中,則在資料太長無法放入資料行時,SQL Server 會在未提供警告的情況下從右側截斷資料。
|
SQL_CHAR (可為 Null) |
當連接到 SQL Server 6.0 和更早版本時,如果 SQL_CHAR 資料行可為 Null,則儲存在資料來源中的資料就不會以空白進行填補。 從此類資料行擷取資料時,SQL Server Native Client ODBC 驅動程式會在資料右側以空白進行填補。 不過,在 SQL Server 所執行的作業 (例如串連) 中建立的資料就沒有此類填補。
|
SQL_LONGVARBINARY、SQL_LONGVARCHAR、SQL_WLONGVARCHAR |
與 SQL Server 6.x 和更新版本的執行個體連接時,完全支援 (使用 WHERE 子句) 具有 SQL_LONGVARBINARY、SQL_LONGVARCHAR 或 SQL_WLONGVARCHAR 資料類型的資料行更新,此種更新作業會影響多個資料列。 當連接到 SQL Server 4.2x 的執行個體時,如果更新所影響的資料列多於一個,就會傳回 S1000 錯誤「部分插入/更新。 文字或影像資料行的插入/更新未成功」。
|
字串函數參數 |
字串函數的 string_exp 參數必須是 SQL_CHAR 或 SQL_VARCHAR 資料類型。 字串函數中不支援 SQL_LONG_VARCHAR 資料類型。 count 參數必須少於或等於 8,000,因為 SQL_CHAR 和 SQL_VARCHAR 資料類型受限於 8,000 字元的最大長度。 |
時間常值 |
當時間常值儲存於 SQL_TYPE_TIMESTAMP 資料行 ( datetime 或 smalldatetime 的 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 的執行個體時,具有別名資料類型的資料行並擁有 char 或 binary 基底資料類型且沒有宣告任何 Null 屬性的資料行,會建立為 varchar 或 varbinary 資料類型。 SQLColAttribute、SQLColumns 和 SQLDescribeCol 會傳回 SQL_VARCHAR 或 SQL_VARBINARY 當做這些資料行的資料類型。 從這些資料行所擷取的資料不會進行填補。
|
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。 |