尝试从SQL的自由文本列中删除逗号时出现错误
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
您不能运行的文本数据类型的REPLACE
:
我正在使用的代码从这个职位,但它仍然没有工作(我特意换了名字,因为我们的政府实体工作)。首先将其转换为[n]varchar(max)
。
USE DBname
UPDATE notestable
SET NotesColumn= REPLACE(CONVERT(nvarchar(max), NotesColumn),',','')
WHERE NotesColumn LIKE '%,%'
非常感谢,195837行刚刚受到影响:) –
我希望这是您的预期! :) –
我希望这是因为我们在使用我们的报告软件获取报告时出现问题,无法输出到CSV,这是因为特殊的chracaters –
试试吧,也许问题在于text
数据类型,将其转换为varchar(max)
USE DBname
UPDATE notestable
SET NotesColumn= REPLACE(CONVERT(VARCHAR(MAX), fieldName),',','')
WHERE NotesColumn LIKE '%,%'
USE DBname
UPDATE notestable
SET NotesColumn= CAST(REPLACE(CAST(NotesColumn AS nvarchar(MAX)),',','')AS ntext)
WHERE NotesColumn LIKE '%,%'
什么数据是什么样子? – dbajtr
@dbajtr它是一个笔记列,用于当护士写一篇关于患者发生的事情的简短描述 –
可能您的字段可能是其他数据类型,而不是NVARCHAR?请检查 –