【问题标题】:SQL Server XQuery.modify "Syntax error near ':', expected '}'"SQL Server XQuery.modify “':' 附近的语法错误,预期为 '}'”
【发布时间】:2017-02-08 17:22:14
【问题描述】:

Table Test.User 包含一个 XML 类型的“详细信息”字段。 Id为1024的用户的Details值格式如下:

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

我尝试在这个 xml 值中插入一个新节点“地址”,如下所示:

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

但出现错误,请帮忙指教。

“':' 附近的语法错误,应为 '}'”

【问题讨论】:

  • 你想更新详情栏
  • 是的,好像需要对符号“:”进行转换

标签: sql sql-server database


【解决方案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>

【讨论】:

  • 它对我有用,参考真的很有用,非常感谢。
猜你喜欢
  • 1970-01-01
  • 2016-02-16
  • 1970-01-01
  • 1970-01-01
  • 2011-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多