2017-02-08 5 views
2

Таблица Test.User содержит одно поле «Сведения», которое находится в формате XML. Значение Подробности пользователя, который Id 1024 в следующем формате:SQL Server XQuery.modify «Синтаксическая ошибка около«: », ожидаемая '}'"

<Details> 
    <Name>Kevin</Name> 
    <Age>23</Age> 
</>Details> 

Я пытаюсь вставить новый узел «Address» в это значение XML любит это:

UPDATE Test.User 
SET Details.modify('insert <Address>{0:c0}</Address> into (/Details)[1]') 
WHERE Id = 1024 

Но происходит ошибка , пожалуйста, сообщите об этом.

"Ошибка синтаксиса около ':', ожидается '}'"

+0

u уточнить детали столбец – Chanukya

+0

Да, кажется, что нужно сделать преобразование для символа «:» – UncannyAxe

ответ

1

Вы должны избежать этих типов {0:c0} символов разметки с CDATA section

DECLARE @DETAILS XML ='<Details> 
    <Name>Kevin</Name> 
    <Age>23</Age> 
</Details>' 

SELECT @DETAILS 


SET @DETAILS.modify('insert <Address><![CDATA[{0:c0}]]></Address> into (/Details)[1]') 

SELECT @DETAILS 

Тогда результат будет как

<Details> 
    <Name>Kevin</Name> 
    <Age>23</Age> 
    <Address>{0:c0}</Address> 
</Details> 
+1

Это работает для меня, и ссылка действительно полезна, спасибо большое. – UncannyAxe

Смежные вопросы