私は次の形式の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>
次に、2つの列(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を使用して名前を抽出し、ルックアップテーブルをクエリしてから、「replacevalueof」を使用してXMLでmodifyを呼び出すことです。私の提案した解決策が非常に遅くなると私が想像するので、より良い方法はありますか?ソリューションはTSQLである必要があり、SPを呼び出す前にビジネスロジックで実行することはできません。セットベースの操作でこれを行う方法があると思いますが、私はそれを見つけるのに苦労しています。