2017-09-04 80 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 '%,%' 
相關問題