用该XML列中的计数修改XML列

时间:2019-04-26 17:20:24

标签: sql-server xml

我需要将sortOrder属性添加到SQL Server中的XML元素。我已经有了添加新元素的现有更新。

UPDATE TargetTable
    SET XMLColumn.modify('insert sql:variable("@newElement") as last into (/Root)[1]')
    WHERE ID = @id

我需要向新元素添加一个名为sortOrder的属性。它的值是现有元素的数量加一。这就是我的做法。将添加要添加的@newElement。

select @elementCount = XMLHistory.value('count(Root/Entry)', 'int')  
from TargetTable WHERE ID = @id

set @elementCount = @elementCount + 1

set @newElement.modify('insert attribute sortOrder {sql:variable("@elementCount")} into (Entry)[1]')

   UPDATE TargetTable
        SET XMLColumn.modify('insert sql:variable("@newElement") as last into (/Root)[1]')
        WHERE ID = @id

有人可以推荐一种更好的方法吗? 我不喜欢查询表,然后进行更新。我希望一次更新即可完成所有操作。

0 个答案:

没有答案