Таблица названа как MasterTable
Столбцы
ID
тип BIGINT
,
Name
тип VARCHAR(200)
(магазины xml
типданные по некоторым причинам)
Name
содержит данные, структурированные как
<en-US>SomeEnglishText</en-US><it-IT>SomeItalicText</it-IT>
Когда мне нужно Update
Таблица Master
, тогда в то время яНеобходимо привести Varchar
к xml
, затем условно обновить / заменить value
часть определенного тега, т.е. либо en-US / it-IT
.
Также есть вероятность, что Нет данных / тегов в столбце Name
, поэтому я думаю, что во время вставки данных в таблицу будет Insert
пустых элементов тегов, таких как <en-US></en-US><it-IT></it-IT>
, поэтому запрос update
должен handle пустое значение в элементах тега, а именно en-US/it-IT
.
Я пытаюсь сделать это как следующий запрос на обновление.
DECLARE @Str VARCHAR(200)
SET @Str = 'Test Text'
UPDATE [MasterTable]
SET [Name] = cast([MasterTable].[Name] as xml).modify('replace value of (en-US/text())[1] with sql:variable("@Str")')
WHERE [ID]=18
Я получаю следующую ошибку, когдавыполнение запроса
Незаконное использование метода типа данных xml 'modify'.В этом контексте ожидается не мутаторный метод.