sql >> Databáze >  >> RDS >> Sqlserver

Jak upravit více uzlů pomocí SQL XQuery v MS SQL 2005

„Jednoduchým“ přístupem by bylo přetypovat sloupec XML na VARCHAR(MAX) a jednoduše v něm provést REPLACE:

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

Skoro to vypadá, že nemůžete provést aktualizaci více hodnot uzlů XML v jednom příkazu UPDATE, jak vysvětluje Richard Szalay zde :

Bohužel se zdá, že implementace je strašně omezená v tom, že nemůže provést libovolný počet úprav stejné hodnoty v jedné aktualizaci.

Takže předpokládám, že budete muset buď použít výše zmíněný „hloupý“ přístup VARCHAR(MAX), nebo provést aktualizaci ve smyčce (zatímco stále najdete uzel s „billy“, AKTUALIZUJTE tento uzel, aby místo toho četl „Peter“ ).

Marc



  1. Zabraňte Accessu v používání nesprávné identity při přidávání do propojené tabulky na SQL serveru

  2. docker commit mysql neukládá

  3. Jak zvýšit propustnost připojení pro pgbouncer?

  4. Jak mohu při provádění MERGE v Oracle SQL aktualizovat řádky, které se neshodují ve SOURCE?