我有一个流程步骤,我在 SQL Server 列中有一个 XML 文档,我需要更改可能多次出现的节点的文本。Modify() with 'replace' DML 仅在单个节点上运行。更复杂的是,需要根据本地维护的查找表进行替换。
我可以使用 nodes() 来获取节点列表并设计一个查询以适当地连接数据,但在那时,我不再有 modify() 可以对其进行操作的引用。
看来我唯一的选择是创建一个 CLR 过程或函数并使用某种 dotnet 本机 XML 迭代。这不太吸引人,因为业务逻辑将被锁定在源代码中,在过程定义中不可见。有什么办法可以专门使用 XML 方法进行这种转换吗?
我想到了三个选项。
使用 nodes() 粉碎 XML,修改值,然后使用 for xml 重建。
将 XML 转换为字符串并使用 replace()。
最适合您的情况取决于 XML 的形状以及您需要进行的修改类型。如果您将带有示例数据和预期输出的表结构添加到问题中,您可能会得到更好的答案。
| 归档时间: |
|
| 查看次数: |
2346 次 |
| 最近记录: |