操作数类型冲突: sql_variant 与 image 不兼容
发布网友
发布时间:2022-04-25 14:23
我来回答
共1个回答
热心网友
时间:2023-10-09 00:01
一种数据类型,用于存储 SQL Server 2005 支持的各种数据类型(不包括 text、ntext、image、timestamp 和 sql_variant)的值。
sql_variant 的最大长度可以是 8016 个字节。这包括基类型信息和基类型值。实际基类型值的最大长度是 8,000 个字节。
对于 sql_variant 数据类型,必须先将它转换为其基本数据类型值,然后才能参与诸如加减这类运算。
可以为 sql_variant 分配默认值。该数据类型还可以将 NULL 作为其基础值,但是 NULL 值没有关联的基类型。而且,sql_variant 不能以另一个 sql_variant 作为它的基类型。
唯一键、主键或外键可能包含类型为 sql_variant 的列,但是,组成指定行的键的数据值的总长度不应大于索引的最大长度。该最大长度是 900 个字节。
一个表可以包含任意多个 sql_variant 列。
不能在 CONTAINSTABLE 和 FREETEXTTABLE 中使用 sql_variant。
ODBC 不完全支持 sql_variant。因此,使用 Microsoft OLE DB Provider for ODBC (MSDASQL) 时,sql_variant 列的查询将作为二进制数据返回。例如,包含字符串数据 'PS2091' 的 sql_variant 列将作为 0x505332303931 返回。
下列规则适用于 sql_variant 比较:
当不同基本数据类型的 sql_variant 值进行比较,而且基本数据类型属于不同的数据类型系列时,则在层次结构图中数据类型系列较高的值被认为在两个值中较大。
当不同基本数据类型的 sql_variant 值进行比较,而且基本数据类型属于相同的数据类型系列时,则在层次结构图中基本数据类型较低的值先隐式转换为其他数据类型,然后再进行比较。
在比较 char、nvarchar、nchar 或 varchar 数据类型的 sql_variant 值时,将基于以下条件进行计算:LCID、LCID 版本、比较标志和排序 ID。各个条件按所列出的顺序作为整数值进行比较。