ITPub博客

首页 > 数据库 > SQL Server > SQLServer类型text运算符不兼容

SQLServer类型text运算符不兼容

原创 SQL Server 作者:chenoracle 时间:2018-07-06 15:40:37 0 删除 编辑

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 ]

……

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29785807/viewspace-2157454/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: RMAN备份和恢复
请登录后发表评论 登录
全部评论
Oracle ACE、OCMU 用户组成员、Oracle 11g OCM、微信公众号"IT小Chen"

注册时间:2014-08-05

  • 博文量
    853
  • 访问量
    2743788