数据类型用法

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics 平台系统(PDW)

SQL Server Native Client ODBC 驱动程序和 SQL Server 强制使用以下数据类型。

数据类型 限制
日期文字 日期文本存储在SQL_TYPE_TIMESTAMP列中(日期/时间或 smalldatetimeSQL Server 数据类型)中时,时间值为 12:00:00.000 A.M。
money 和 smallmoney 只有 moneysmallmoney 数据类型的整数部分是重要的。 如果在数据类型转换期间截断了 SQL 货币 数据的十进制部分,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_LONGVARBINARY、SQL_LONGVARCHAR或SQL_WLONGVARCHAR数据类型(使用 WHERE 子句)更新影响多个行的列在连接到 SQL Server 6 实例时完全受支持。x 及更高版本。 连接到 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_TIMESTAMP列中(日期/时间或 smalldatetimeSQL Server 数据类型)中时,日期值为 1900 年 1 月 1 日。
timestamp 只能将 NULL 值手动插入 时间戳 列。 但是,由于 时间戳列由 SQL Server 自动更新,因此会覆盖 NULL 值。
tinyint SQL Server tinyint 数据类型未签名。 默认情况下,tinyint 列绑定到数据类型SQL_C_UTINYINT变量。
别名数据类型 连接到 SQL Server 4.2x 实例时,ODBC 驱动程序会将 NULL 添加到不显式声明列的可为 null 性的列定义。 因此,将忽略在别名数据类型的定义中存储的为 Null 性。

连接到 SQL Server 4.2x 实例时,具有具有字符二进制数据类型的别名数据类型的列,并且不会声明为 null 性,将其创建为数据类型 varcharvarbinarySQLColAttributeSQLColumnsSQLDescribeCol 返回SQL_VARCHAR或SQL_VARBINARY作为这些列的数据类型。 不对从这些列检索的数据进行填充。

注意:SQL Server Native Client ODBC 驱动程序支持连接到 SQL Server 6.5 及更早版本。
LONG 数据类型 对于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 的 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。

另请参阅

处理结果 (ODBC)