Для чего-то реального, я бы пошел с xpaths, но иногда вам просто нужно быстрое и грязное решение:
Вы можете использовать CAST, чтобы превратить этот столбец xml в обычный varchar, а затем выполнить обычную замену.
UPDATE xmlTable SET xmlCol = REPLACE( CAST( xmlCol as varchar(max) ), '[search]', '[replace]')
Этот же метод также упрощает поиск в XML, когда вам нужно просто выполнить быстрый запрос, чтобы найти что-то, и не иметь дело с xpaths.
SELECT * FROM xmlTable WHERE CAST( xmlCol as varchar(max) ) LIKE '%found it!%'
Редактировать: Просто хочу немного обновить это, если вы получаете сообщение в формате Преобразование одного или нескольких символов из XML в целевое сопоставление невозможно , тогда вам нужно только использовать nvarchar, который поддерживает юникода.
CAST( xmlCol as nvarchar(max) )