update SubCategoryMaster
set SubCategoryDescription='SHARPENERANDRULER'
where SubCategoryDescription='SharpenerAndRuler'
在此查询中,SubCategoryDescription
的数据类型为TEXT
。当我执行此查询时,出现错误:
Msg 402,Level 16,State 1,Line 1
数据类型text和varchar在等于运算符中不兼容。
请建议
答案 0 :(得分:0)
blog.sqlauthority.com有一个答案。以下是博客文章的相关部分,以防该链接死亡:
解决方案1 :使用CONVERT函数转换数据类型以相互匹配。
将MyText的数据类型更改为nvarchar。
SELECT ID, MyText
FROM TestTable
WHERE CONVERT(NVARCHAR(MAX), MyText) = N'AnyText'
GO
解决方案2 :将列的数据类型从NTEXT转换为NVARCHAR(MAX)(TEXT到VARCHAR(MAX)
ALTER TABLE TestTable
ALTER COLUMN MyText NVARCHAR(MAX)
GO
现在您可以再次运行原始查询,它将正常工作。
解决方案3 :使用LIKE命令代替Equal命令。
SELECT ID, MyText
FROM TestTable
WHERE MyText LIKE 'AnyText'
GO