将XML节点替换为空,并通过SQL添加xsi:nil

时间:2016-06-20 03:43:23

标签: xml xquery

我有一个XML列,其中包含我想要更新的特定节点。

我需要将此节点设置为 null

以下是我目前更新XML值的方法:

SET @XML.modify('replace value of (/House/Rooms/RoomSize/text())[1] with sql:variable("@NewRoomSize")');

此声明将产生<RoomSize> {Value} </RoomSize>

我应该如何设置这样的值结果:<RoomSize xsi:nil = "true" />

谢谢!

1 个答案:

答案 0 :(得分:1)

找到解决方案:

将'xsi:nil'属性添加到相应的XML节点:

SET @XML.modify('insert attribute xsi:nil {"true"} into (/House/Rooms/RoomSize)[1]');

删除当前节点中的值(如果存在):

SET @XML.modify('replace value of (/House/Rooms/RoomSize/text())[1] with ""');