Sql server SQL无法删除字符(13)

Sql server SQL无法删除字符(13),sql-server,replace,carriage-return,Sql Server,Replace,Carriage Return,我正在查看一个表,其中输入了数据项,其中包含字符13 我可以很容易地通过以下方法识别行: SELECT * FROM Preferences WHERE PreferenceName LIKE '%' + CHAR(13) + '%' 因此,从这一点,我知道其中有控制字符的行。但是,当我尝试使用以下命令删除这些字符时: UPDATE dbo.Preferences SET PreferenceName = REPLACE(PreferenceName, CHAR(13),

我正在查看一个表,其中输入了数据项,其中包含字符13

我可以很容易地通过以下方法识别行:

SELECT  *
FROM    Preferences
WHERE   PreferenceName LIKE '%' + CHAR(13) + '%'
因此,从这一点,我知道其中有控制字符的行。但是,当我尝试使用以下命令删除这些字符时:

UPDATE  dbo.Preferences
SET     PreferenceName = REPLACE(PreferenceName, CHAR(13), '')
WHERE   PreferenceName LIKE '%' + CHAR(13) + '%'
我收到一条0行受影响的消息,当然没有更新。我需要整理这些数据,因为它会影响过滤。我可以用like来选择,但不能用equals,这当然要慢得多

你知道为什么这不能按预期工作吗?

我刚刚做了一个测试

    ;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

您正在从tmp.dc_Preferences_bbb中选择并更新dbo.Preferences。这是个错误吗?我自己也注意到了。这是一个输入错误,一个窗口中有多个查询,粘贴了错误的一个,但其中一个是另一个的视图。所以,第一个返回行,但第二个不返回行?你能在第一个中也使用模式吗?是的。我可以读取行,但它不允许我清理数据。我现在已经到了怀疑自己的地步。它看起来很简单,但不起作用。好的,SSM刚刚开始抛出内存错误。所以我关闭它,打开它,它工作了。关闭它,然后再打开-修复一切。谢谢你们的帮助。 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!