温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SQLServer类型text运算符不兼容

发布时间:2020-08-10 22:36:21 来源:ITPUB博客 阅读:503 作者:chenoracle 栏目:关系型数据库

SQLServer 类型 text 运算符不兼容

 

DB SQLServer 2012

问题:

Text 类型的列,不支持“ = ”运算符。

报错如下:

消息 402,级别 16,状态 1,第 1 行

数据类型 text 和 varchar 在 equal to 运算符中不兼容。

问题现象:

---create table test0706(id int,a text);

---insert into test0706 select id,ssfb as a from t1;

select * from test0706 where a='10';

消息 402,级别 16,状态 1,第 1 行

数据类型 text 和 varchar 在 equal to 运算符中不兼容。

select * from test0706 where a in ('10');

消息 402,级别 16,状态 1,第 1 行

数据类型 text 和 varchar 在 equal to 运算符中不兼容。

update test0706 set a=100 where id='2';

消息 206,级别 16,状态 2,第 1 行

操作数类型冲突: int 与 text 不兼容

 

解决方案:

一: like

text类型查询时不支持=,可以支持like

select * from test0706 where a like '10';

二:cast

select  * from test0706 where cast(a as nvarchar) = '10';

---同理也可以用于update

BEGIN TRAN 

update test0706 set a = cast('100' as text) where id=2;

COMMIT TRAN

---ROLLBACK TRAN

三: READTEXT (Transact-SQL)

https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008-r2/ms187365(v=sql.105)

从 text、ntext 或 image 列读取 text、ntext 或 image 值,从指定的偏移量开始读取指定的字节数。

语法:

READTEXT { table.column text_ptr offset size } [ HOLDLOCK ]

……

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI