2017-09-04 53 views
0
USE DBname 
UPDATE notestable 
SET NotesColumn= REPLACE(NotesColumn,',','') 
WHERE NotesColumn LIKE '%,%' 

当我尝试执行此代码时,出现以下错误。尝试从SQL的自由文本列中删除逗号时出现错误

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

什么数据是什么样子? – dbajtr

+0

@dbajtr它是一个笔记列,用于当护士写一篇关于患者发生的事情的简短描述 –

+0

可能您的字段可能是其他数据类型,而不是NVARCHAR?请检查 –

回答

1

您不能运行的文本数据类型的REPLACE

我正在使用的代码从这个职位,但它仍然没有工作(我特意换了名字,因为我们的政府实体工作)。首先将其转换为[n]varchar(max)

USE DBname 
UPDATE notestable 
SET NotesColumn= REPLACE(CONVERT(nvarchar(max), NotesColumn),',','') 
WHERE NotesColumn LIKE '%,%' 
+0

非常感谢,195837行刚刚受到影响:) –

+0

我希望这是您的预期! :) –

+0

我希望这是因为我们在使用我们的报告软件获取报告时出现问题,无法输出到CSV,这是因为特殊的chracaters –

1

试试吧,也许问题在于text数据类型,将其转换为varchar(max)

USE DBname 
UPDATE notestable 
SET NotesColumn= REPLACE(CONVERT(VARCHAR(MAX), fieldName),',','') 
WHERE NotesColumn LIKE '%,%' 
0
USE DBname 
UPDATE notestable 
SET NotesColumn= CAST(REPLACE(CAST(NotesColumn AS nvarchar(MAX)),',','')AS ntext) 
WHERE NotesColumn LIKE '%,%' 
相关问题