1

次のXML変数がある場合、 StateCodeノードの「 UNKNOWN」をTSQL for MS SQL 2005の「 FOO 」に置き換えるにはどうすればよいですか?

declare @xmldata xml

set @xmldata = 

    '<Collection>
        <Plan>
            <StateCode>UNKNOWN</StateCode>
            <Type>Tubular</Type> 
        </Plan>
    </Collection>'

私が見つけた同様の質問とは異なり、これは単なるXML型の変数であり、テーブルレコードではありません。

変数値をテーブルに挿入してその質問で提示されたメソッドを使用する必要がありますか、それともXML変数を直接操作して置換を実行するだけですか?

4

1 に答える 1

2

XML 変数を直接操作して、置換を実行できます。

set @xmldata.modify('replace value of (/Collection/Plan/Type/text())[1] with "new value"')

select @xml

(SQL Server atm にアクセスできないため、XPath は正確ではない可能性があります)

また、UNKNOWN が実際に空のテキストである場合、これは機能しないことに注意してください。これにはもう少し作業が必要です!)

于 2009-06-13T05:33:31.640 に答える