对数据类型而言运算符无效。运算符为 add,类型为 text。

最近在开发一个文件管理系统的时候,遇到另外一个问题:本来偶在本地的数据库是SQL2008,有一个字段SharedUserId 是nvarchar(max)类型,偶在查询SQL语句中用了...WHERE SharedUserId + ',' LIKE '%2,%', 可以正常执行。后来把程序发布到买的空间服务器上,服务器上是SQL2000的数据库,因为SQL2000没有nvarchar(max)类型,所以偶改成了text类型,结果在执行同样的SQL语句时程序就报错了:

---------------------------
Microsoft Internet Explorer
---------------------------
对数据类型而言运算符无效。运算符为 add,类型为 text。(System.Exception)
---------------------------
OK  
---------------------------

于是,偶把本地的数据库字段类型也改成text,再测试,也报类似错误(偶的SQL2008是英文版的):

---------------------------
Microsoft Internet Explorer
---------------------------
The data types text and varchar are incompatible in the add operator.(System.Exception)
---------------------------
OK  
---------------------------

后来在网上搜索了一下,原来的查询语句稍微修改下(把text转换为nvarchar再执行+运算),就可以了:...WHERE SharedUserId + ',' LIKE '%2,%'换成...WHERE CAST(SharedUserId AS NVARCHAR) + ',' LIKE '%2,%' 或 WHERE CONVERT(NVARCHAR, SharedUserId) + ',' LIKE '%2,%'

青苹果Web应用商店 https://webapp.taobao.com/

PHP/ASP.NET/ASP/UCHOME/DISCUZ! X系列网站开发,详细需求联系QQ:8511978

原文地址:https://www.cnblogs.com/Dicky/p/The_Data_Types_Text_And_Varchar_Are_Incompatible_In_The_Add_Operator.html