USE DBname
UPDATE notestable
SET NotesColumn= REPLACE(NotesColumn,',','')
WHERE NotesColumn LIKE '%,%'
当我尝试执行此代码时,我收到以下错误。
Msg 8116, Level 16, State 1, Line 2
Argument data type text is invalid for argument 1 of replace function.
我设法在一周前做了类似的代码并删除了这个专栏中的所有引号,但显然我错过了一些东西。 (因为我们为政府机构工作,故意更改名称)
我使用了这篇文章中的代码,但它仍无效:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/12c2e9bf-a5c2-484a-a7b3-021890c61963/how-to-remove-comma-fro-sql-string?forum=transactsql
答案 0 :(得分:1)
您无法在文本数据类型上运行REPLACE
。首先将其转换为[n]varchar(max)
。
USE DBname
UPDATE notestable
SET NotesColumn= REPLACE(CONVERT(nvarchar(max), NotesColumn),',','')
WHERE NotesColumn LIKE '%,%'
答案 1 :(得分:1)
尝试它可能问题取决于text
数据类型,将其转换为varchar(max)
USE DBname
UPDATE notestable
SET NotesColumn= REPLACE(CONVERT(VARCHAR(MAX), fieldName),',','')
WHERE NotesColumn LIKE '%,%'
答案 2 :(得分:0)
USE DBname
UPDATE notestable
SET NotesColumn= CAST(REPLACE(CAST(NotesColumn AS nvarchar(MAX)),',','')AS ntext)
WHERE NotesColumn LIKE '%,%'