用户包含一个XML类型的字段“details”。
id为1024的用户的详细信息值格式如下:
<Details>
<Name>Kevin</Name>
<Age>23</Age>
</>Details>
我尝试在这个xml值中插入一个新的节点“address”,如下所示:
UPDATE Test.User
SET Details.modify('insert <Address>{0:c0}</Address> into (/Details)[1]')
WHERE Id = 1024
但发生错误,请帮忙指点。
“:”附近出现语法错误,应为'}'”
最佳答案
您需要使用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>
关于sql - SQL Server XQuery.modify“靠近':'的语法错误,预期为'}'”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42108713/