尝试使用XQuery修改SQL Server中的XML

时间:2013-02-22 11:21:25

标签: sql-server xquery

我正在尝试向SQL Server中的XML列中的节点添加属性。

UPDATE
    TableName
SET Metadata.modify('
    insert attribute MyAttribute{"01b9cd0b-bfed-436f-bc58-57d2fddd9211"}
    into (Root/Collection/Item[@No="360"][1])
')
WHERE
    TableName.Id = 1

我收到以下错误...

  

Msg 2226,Level 16,State 1,Line 4 XQuery
  [TableName.Metadata.modify()]:'insert'的目标必须是单个   node,找到'element(Item,xdt:untyped)*'

但我认为我的选择将返回一个项目,给定[1]

1 个答案:

答案 0 :(得分:2)

愚蠢的XQuery! (或者可能是我)。

您需要将[1]放在括号外:

into (Root/Collection/Item[@No="360"][1])

应该是

into (Root/Collection/Item[@No="360"])[1]