我需要将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
有人可以推荐一种更好的方法吗? 我不喜欢查询表,然后进行更新。我希望一次更新即可完成所有操作。