Если у вас есть пара значений, которые вы хотите изменить, вы можете использовать этот подход, который я нашел в sqlservercentral . Он использует оператор выбора, чтобы получить данные, манипулирует им несколько раз, и использует один оператор обновления, чтобы изменить данные таблицы.
Не идеально, но в некоторых случаях может быть достаточно. По сути, это упрощенная версия циклического решения для фиксированного числа изменяемых значений.
DECLARE @temp XML
SET @temp = (SELECT Column_name FROM Table_name WHERE AuthId = @AuthId)
SET @temp.modify('replace value of (/UmAuthDto/Assignment/QueueId/text())[1] with sql:variable("@NewValue")')
SET @temp.modify('replace value of (/UmAuthDto/Assignment/QueueName/text())[1] with sql:variable("@NewValue")')
UPDATE Table_name
SET Column_name = @temp
WHERE AuthId = @AuthId