原因:在數據查詢中replace函數無法對表table中text/ntext類型的字段colname進行了字符串操作。
解決方法:將text當作varchar(實際內容長度低於8000字節時)或把ntext當作nvarchar(實際內容長度低於4000字節時)。
但是當text字段內容長度超過8000或ntext字段內容長度超過4000字節時多出的字節會被截斷而忽略掉。
這時我們可以使用max類型來解決這個問題。
原報錯代碼:
1
|
update
tablename
set
colname=
replace
(colname,
'oldtext'
,
'newtext'
);
|
修改后可執行代碼:
1
|
update
tablename
set
colname=
replace
(
Cast
(colname
as
varchar
(8000)),
'oldtext'
,
'newtext'
);
|
1
|
update
tablename
set
colname=
replace
(
Cast
(colname
as
nvarchar(4000)),
'oldtext'
,
'newtext'
);
|