数据类型用法
SQL Server Native Client ODBC 驱动程序和 SQL Server 执行以下数据类型用法。
数据类型 |
限制 |
||
---|---|---|---|
日期文字 |
日期文字存储在 SQL_TYPE_TIMESTAMP 列(SQL Server 数据类型 datetime 或 smalldatetime)中时,则具有时间值 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 和更高版本的实例时,完全支持对具有 SQL_LONGVARBINARY、SQL_LONGVARCHAR 或 SQL_WLONGVARCHAR 数据类型(使用 WHERE 子句)的列执行涉及多个行的更新。 连接到 SQL Server 4.2x 实例时,如果更新影响多个行,将返回 S1000 错误“部分插入/更新。 文本或图像列的插入/更新失败”。
|
||
字符串函数参数 |
字符串函数的 string_exp 参数的数据类型必须是 SQL_CHAR 或 SQL_VARCHAR。 在字符串函数中不支持 SQL_LONG_VARCHAR 数据类型。 count 参数必须小于或等于 8,000,因为 SQL_CHAR 和 SQL_VARCHAR 数据类型的长度最大不能超过 8,000 字符。 |
||
时间文字 |
时间文字存储在 SQL_TIMESTAMP 列(SQL Server 数据类型 datetime 或 smalldatetime)中,则具有日期值 1900 年 1 月 1 日。 |
||
timestamp |
仅 NULL 值可以手动插入到 timestamp 列中。 但是,由于 SQL Server 将自动更新 timestamp 列,因此将覆盖 NULL 值。 |
||
tinyint |
SQL Servertinyint 数据类型是无符号类型。 默认情况下 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 数据类型 |
SQL_LONGVARBINARY 和 SQL_LONGVARCHAR 数据类型的执行时数据参数均受到限制。 |
||
大值类型 |
在接受或返回 ODBC SQL 数据类型的 API 中,SQL Server Native Client ODBC 驱动程序将 varchar(max)、varbinary(max) 和 nvarchar(max) 类型分别公开为 SQL_VARCHAR、SQL_VARBINARY 和 SQL_WVARCHAR。 |
||
用户定义类型 (UDT) |
UDT 列被映射为 SQL_SS_UDT。 如果使用 UDT 的 ToString() 或 ToXMLString() 方法或者通过 CAST/CONVERT 函数,在 SQL 语句中将 UDT 列显式映射到另一种类型,则在结果集中该列的类型将反映该列被转换成的实际类型。 SQL Server Native Client ODBC 驱动程序只能作为二进制文件绑定到 UDT 列。 SQL Server 仅支持在 SQL_SS_UDT 和 SQL_C_BINARY 数据类型之间的转换。 |
||
XML |
SQL Server 会自动将 XML 转换为 Unicode 文本。 XML 类型将映射为 SQL_SS_XML。 |