表Test.User包含一个XML类型的“Details”字段。 Id为1024的用户的Details值的格式如下:
<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
但是出现错误,请帮忙指教。
"Syntax error near ':', expected '}'"
最佳答案
您需要使用 CDATA section 对这些类型的 {0:c0}
标记字符进行转义
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 Server XQuery.修改 "Syntax error near ' :', expected ' }'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42108713/