2017-02-20 18 views
0

Я смотрю на таблицу, в которой были введены элементы данных, в которые в нее вставляется CHAR (13).SQL Не удается удалить CHAR (13)

я могу определить строки достаточно легко с:

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

Так из этого я знаю, линии, которые имеют характер управления в них. Однако, когда я пытаюсь удалить эти символы с:

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

я получаю 0 строк (ы) пострадавшие сообщения а и, конечно, не обновления. Мне нужно убрать эти данные, поскольку это влияет на фильтрацию. (Я могу выбрать с подобным, но не равным, что, конечно, намного медленнее)

Любые идеи, почему это не будет работать должным образом?

+2

Вы выбираете из 'tmp.dc_Preferences_bbb' и обновление' dbo.Preferences'. Это ошибка? – ForguesR

+0

Только что заметил то же самое. Это опечатка, несколько запросов в одном окне, вставленная неправильно, но одна из них - вид другой –

+0

Итак, первая возвращает строки, а вторая - нет? Можете ли вы использовать схему в первой? – UnhandledExcepSean

ответ

0

Я просто сделал тестирование

;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!