四时宝库

程序员的知识宝库

SQL Server 未处理 NText、Text、Xml 或 Image 数据类型的比较

当在执行程序时数据库报错:SQL Server 未处理 NText、Text、Xml 或 Image 数据类型的比较
错误造成的可能原因:

1、微软可能会后续的SQL Server版本中移除text类型。
2、该字段为字符串分配的大小不够。

解决办法:
用varchar(max)代替text。
varchar的最大长度为8000,但是varchar(max)则可以存储多达2G的数据,因此其作用相当于SQL中的text。但是微软可能会后续的SQL Server版本中移除text类型,从现在就应该用varchar(max) 来代替text。 用nvarchar(max)代替ntext,用binary(max)代替image. 为XML数据选择xml类型。在SQL Server 2005中,为XML数据添加了相应的数据类型,因此存储XML数据的列不需要用 varchar(max)或nvarchar(max),而应当用xml数据类型,以利用T-SQL中专门针对xml数据列的新命令,以及针对xml列的索引。

ALTER TABLE T ALTER COLUMN a1 XML;
ALTER TABLE T ALTER COLUMN a2 binary(MAX);
ALTER TABLE T ALTER COLUMN a2 XML;

ALTER TABLE T ALTER COLUMN a1 VARCHAR(MAX);
ALTER TABLE T ALTER COLUMN a2 VARCHAR(MAX);

varchar与nvarchar区别
1、varchar(n)
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。
2、nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接