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

我有一个
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”/>

谢谢!

最佳答案 找到解决方案:

要将’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 ""');
点赞