您好,登錄后才能下訂單哦!
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 ]
……
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。