SQL Server XQuery.modify“''附近的语法错误,'expect'}'”

时间:2017-02-08 09:02:29

标签: sql sql-server database

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'}'”

1 个答案:

答案 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>