Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在更新中使用替换_Sql Server_Replace_Sql Update - Fatal编程技术网

Sql server 在更新中使用替换

Sql server 在更新中使用替换,sql-server,replace,sql-update,Sql Server,Replace,Sql Update,我有一个包含项目的表,在description字段中,我想在很多记录中将Char(10)替换为“” 我可以手动将其逐个记录替换,如下所示: UPDATE tblProjects SET Description = (SELECT Replace(Description, Char(10), ' ') FROM tblProjects WHERE ( Description LIKE '%' + C

我有一个包含项目的表,在description字段中,我想在很多记录中将Char(10)替换为“”

我可以手动将其逐个记录替换,如下所示:

UPDATE tblProjects
SET    Description = (SELECT Replace(Description, Char(10), ' ')
                      FROM   tblProjects
                      WHERE  ( Description LIKE '%' + Char(10) + '%' )
                             AND ProjectID = XAXD)
WHERE  ( Description LIKE '%' + Char(10) + '%' )
       AND ProjectID = XAXD
但是我想要一个更通用的解决方案,比如foreach项目,然后将projectd作为变量。

你不能简单地编写吗

UPDATE tblProjects
SET    Description = Replace(Description, Char(10), ' ')
你就不能这么做吗

UPDATE tblProjects SET    

   Description =  Replace(Description, Char(10), ' ')

WHERE  ( Description LIKE '%' + Char(10) + '%' )
       AND ProjectID = 'XAXD'
你在两个地方重复了这个条件

您还可以删除
部分,以更新所有具有
char(10)

或者使用参数
@ProjectID
代替“XAXD”

Declare @ProjectID varchar(50)

SET @ProjectID = 'XAXD'
UPDATE tblProjects SET    

   Description =  Replace(Description, Char(10), ' ')

WHERE  ( Description LIKE '%' + Char(10) + '%' ) AND
       ProjectID = @ProjectID

我怀疑你是否需要这个选择。为什么不只是:

UPDATE tblProjects
SET    Description = Replace(Description, 'whatever', '')
WHERE  Description LIKE '%whatever%'
       AND ProjectID = XAXD

我认为“AND projectd=XAXD”是“手动逐个记录”部分的一部分:/感谢您的帮助,我试图使我比原来更复杂。您是对的,这样做:UPDATE tblProjects SET Description=Replace(Description,CHAR(10),“”),其中要替换的字符串是静态的,比如“%”+CHAR(10)+“%”?或者以某种方式取决于项目id?我的想法是,对于每个记录,我必须获得描述并将字符(10)替换为“”,然后更新相同的描述。对于每个项目,我有181个项目描述,其中我需要将描述中的字符(10)替换为“”。什么是
Char(10)
??它是静态文本吗?更新tblProjects SET Description=Replace(Description,CHAR(10),“”),其中像“%”+CHAR(10)+“%”CHAR(10)这样的描述是换行的
UPDATE tblProjects
SET    Description = Replace(Description, 'whatever', '')
WHERE  Description LIKE '%whatever%'
       AND ProjectID = XAXD