sql >> Database >  >> RDS >> Sqlserver

Meerdere knooppunten wijzigen met SQL XQuery in MS SQL 2005

De "eenvoudige" benadering zou zijn om de XML-kolom naar VARCHAR(MAX) te casten en er gewoon een REPLACE op te doen:

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

Het lijkt bijna alsof je geen update van meerdere XML-knooppuntwaarden in een enkele UPDATE-instructie kunt doen, zoals Richard Szalay uitlegt hier :

Helaas lijkt het erop dat de implementatie verschrikkelijk beperkt is in die zin dat het niet een willekeurig aantal wijzigingen aan dezelfde waarde kan maken in een enkele update.

Dus ik denk dat je ofwel de "domme" VARCHAR (MAX) -benadering moet gebruiken die hierboven is genoemd, of de update in een lus moet doen (TERWIJL je nog steeds een knooppunt vindt met "billy", UPDAATE dat knooppunt om in plaats daarvan "Peter" te lezen ).

Marc



  1. Primaire bestandsgroep is zonder duidelijke reden vol in SQL Server 2008 Standard

  2. Atomiciteit meerdere MySQL-subquery's in een INSERT/UPDATE-query?

  3. Npgsql 4.0-parameters en nulwaarden

  4. Een zeer beschikbare database voor Moodle bouwen met MariaDB (replicatie en MariaDB-cluster)