SQLServer 类型 text 运算符不兼容 DB : SQLServer 2012 问题: Text 类型的列,不支持“ = ”运算符。 报错如下:
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 ]
……
--结束END--
本文标题: SQLServer类型text运算符不兼容
本文链接: https://lsjlt.com/news/48118.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0