Table Test.User包含一个字段“Details”,它是XML类型。 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
但是发生错误,请帮忙提出建议。
“''附近的语法错误,'expected'}'”
答案 0 :(得分:1)
您需要使用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>