緣由:在數據查詢中replace函數沒法對錶table中text/ntext類型的字段colname進行了字符串操做。sql
解決方法:將text看成varchar(實際內容長度低於8000字節時)或把ntext看成nvarchar(實際內容長度低於4000字節時)。函數
可是當text字段內容長度超過8000或ntext字段內容長度超過4000字節時多出的字節會被截斷而忽略掉。spa
這時咱們可使用max類型來解決這個問題。code
原報錯代碼:blog
1
|
update
tablename
set
colname=
replace
(colname,
'oldtext'
,
'newtext'
);
|
修改後可執行代碼:ci
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'
);
|