Как я могу обновить много строк с разными значениями для одного и того же столбца? - PullRequest
0 голосов
/ 08 марта 2019

У меня есть таблица со столбцом, содержащим путь к файлу.Путь является абсолютным путем, и значения для этого столбца выглядят следующим образом: 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 |
+----+-----------------------------------+`

Path - это 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 |
+----+---------------------------------------+`

Есть ли способ отформатировать запрос, который будет обновлять каждую запись, но обновлять его на основе существующего значения (замените часть C:\CIс C:\CI\Net для каждой записи при сохранении остальной части значения) вместо того, чтобы устанавливать для каждого столбца одинаковое значение, как в обычной таблице обновления, установить столбец = значение?

1 Ответ

5 голосов
/ 08 марта 2019

Черт возьми, ты почти сам написал код.

Update YourTable
set path = replace(path, 'C:\CI', 'C:\CI\Net')
...