如何为同一列更新具有不同值的许多行?

Imb*_*joe 0 sql-server sql-server-2014

我有一个表,其中的列包含文件的路径。该路径是绝对路径,该列的值如下所示:C:\CI\Media\animal.jpg

该表看起来像这样,除了有很多行,所以手工编辑是不实际的:

`+----+-----------------------------------+
| ID |               Path                |
+----+-----------------------------------+
|  1 | C:\CI\Media\sushi.jpg             |
|  2 | C:\CI\Media\animal.jpg            |
|  3 | C:\CI\Media\Tuscany Trip\pisa.png |
+----+-----------------------------------+`
Run Code Online (Sandbox Code Playgroud)

路径是nvarchar(260)

我想做的是运行一个查询,该查询将更新每条记录,以便每条记录的路径都替换C:\CI\C:\CI\Net,最后得到一个看起来像这样的表:

`+----+---------------------------------------+
| ID |                 Path                  |
+----+---------------------------------------+
|  1 | C:\CI\Net\Media\sushi.jpg             |
|  2 | C:\CI\Net\Media\animal.jpg            |
|  3 | C:\CI\Net\Media\Tuscany Trip\pisa.png |
+----+---------------------------------------+`
Run Code Online (Sandbox Code Playgroud)

有没有一种格式化查询的格式,该查询将更新每条记录,但会根据现有值进行更新(用每条记录替换该C:\CI部分,C:\CI\Net同时保留其余值),而不是将每列设置为相同的值,例如正常更新表设置列=值?

Sea*_*nge 5

天哪,您几乎自己编写了代码。

Update YourTable
set path = replace(path, 'C:\CI', 'C:\CI\Net')
Run Code Online (Sandbox Code Playgroud)