2017-02-20 6 views
0

データ項目にCHAR(13)が入っているテーブルがあります。SQL CHAR(13)を削除できません

私は簡単に十分な行を識別することができます:私は彼らに制御文字を持つ行を知って、このSOから

SELECT * 
FROM Preferences 
WHERE PreferenceName LIKE '%' + CHAR(13) + '%' 

。私はこれらの文字を削除しようとすると、しかし:

UPDATE dbo.Preferences 
SET  PreferenceName = REPLACE(PreferenceName, CHAR(13), '') 
WHERE PreferenceName LIKE '%' + CHAR(13) + '%' 

私は0行(s)は影響を受けたメッセージと、もちろんありませんアップデートを取得します。このデータがフィルタリングに影響を与えるので、このデータを整理する必要があります。 (私は好きなものを選ぶことができますが、それほど遅くない等価ではありません)

これは期待どおりに動作しないのでしょうか?

+2

をしました。それは間違いですか? – ForguesR

+0

ちょうど同じ自分に気づいた。 1つのウィンドウで複数のクエリが間違って貼り付けられていますが、1つは他のビューです。 –

+0

したがって、最初の行は行を返しますが、2番目の行は返されません。最初のスキーマでもスキーマを使用できますか? – UnhandledExcepSean

答えて

0

私はちょうどあなたが `tmp.dc_Preferences_bbb`と更新` dbo.Preferences`から選択されているテスト

;WITH testdata(ID,s)AS 
    (
     SELECT 1,'This is a string' UNION ALL 
     SELECT 2,'This is the sencode string'+CHAR(13) UNION ALL 
     SELECT 3,'This is the third string'+CHAR(10) UNION 
     SELECT 4,'This is'+CHAR(13)+' a '+CHAR(13)+' string containing special character!'+CHAR(13) 
    ) 
    SELECT *,'After replaced:'+REPLACE(s,CHAR(13),'') AS replaced FROM testdata 
    WHERE CHARINDEX(CHAR(13),s)>0 
 
ID   s             replaced 
----------- -------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
2   This is the sencode string 
         After replaced:This is the sencode string 
4   This is 
a 
string containing special character! 
After replaced:This is a string containing special character! 

関連する問題