我有以下形式的 XML:
<Books>
<Book>
<Name>Lord of the Rings</Name>
</Book>
<Book>
<Name>Harry Potter</Name>
</Book>
<Book>
<Name>Girl with the Dragon Tattoo</Name>
</Book>
</Books>
然后我有一个包含两列(Id 和 Name)的表:
- 1:指环王
- 2:哈利波特
- 3:龙纹身的女孩
使用 TSQL,我想将 XML 更新为:
<Books>
<Book>
<Name>1</Name>
</Book>
<Book>
<Name>2</Name>
</Book>
<Book>
<Name>3</Name>
</Book>
</Books>
如,我需要查找“查找”表并将节点的值更新为 ID 而不是名称。
我能想到的唯一方法是创建一个循环并使用 XPath 提取名称,查询查找表,然后使用“替换值”对 XML 调用修改。有没有更好的方法,因为我想我提出的解决方案会很慢?该解决方案需要在 TSQL 中,并且不能在调用 SP 之前在业务逻辑中执行。我想有一种方法可以在基于集合的操作中做到这一点,但我很难找到它。