sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan ændres flere noder ved hjælp af SQL XQuery i MS SQL 2005

Den "simple" tilgang ville være at caste XML-kolonnen til VARCHAR(MAX) og bare lave en REPLACE på den:

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

Det ser næsten ud til, at du ikke kan lave en opdatering af flere XML-nodeværdier i en enkelt UPDATE-sætning, som Richard Szalay forklarer her :

Desværre ser det ud til, at implementeringen er frygtelig begrænset, fordi den ikke kan foretage et vilkårligt antal ændringer til den samme værdi i en enkelt opdatering.

Så jeg gætter på, at du enten bliver nødt til at bruge den "dumme" VARCHAR(MAX)-tilgang nævnt ovenfor eller lave opdateringen i en løkke (MENS du stadig finder en node med "billy", OPDATERE den node for at læse "Peter" i stedet for ).

Marc



  1. Tæl alle poster fra databasen, hvor forfaldsdatoen matcher dagens dato

  2. Hvordan bruger man union kun én gang med hvor kommandoen?

  3. MySQL:Undgå at vælge kolonner med samme bruger-id

  4. Indsæt flere rækker med select