sql >> データベース >  >> RDS >> Sqlserver

MS SQL 2005 で SQL XQuery を使用して複数のノードを変更する方法

    「単純な」アプローチは、XML 列を VARCHAR(MAX) にキャストし、単純に REPLACE を実行することです:

    UPDATE
      YourTable
    SET
      ParameterValue = CAST(REPLACE(CAST(ParameterValue AS VARCHAR(MAX)), '
                                    Billy', 'Peter') AS XML)
    WHERE
      ....
    

    Richard Szalay が こちら :

    残念ながら、1 回の更新で同じ値に任意の数の変更を加えることができないという点で、実装はひどく制限されているようです.

    したがって、上記の「ダム」 VARCHAR(MAX) アプローチを使用するか、ループで更新を行う必要があると思います (「billy」を含むノードをまだ見つけている間に、そのノードを更新して代わりに「Peter」を読み取ります)。 ).

    マーク



    1. ビット単位のフラグは放棄されましたか?

    2. OracleからPostgreSQLへ:START WITH / CONNECT BY

    3. テーブルが存在する場合は削除します

    4. マトリックステーブルを作成するSQL