sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man ändrar flera noder med SQL XQuery i MS SQL 2005

Det "enkla" tillvägagångssättet skulle vara att casta XML-kolumnen till VARCHAR(MAX) och helt enkelt göra en ERSÄTTNING på den:

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

Det verkar nästan som att du inte kan göra en uppdatering av flera XML-nodvärden i en enda UPDATE-sats, som Richard Szalay förklarar här :

Tyvärr verkar det som om implementeringen är fruktansvärt begränsad genom att den inte kan göra ett godtyckligt antal ändringar av samma värde i en enda uppdatering.

Så jag antar att du antingen måste använda den "dumma" VARCHAR(MAX)-metoden som nämns ovan, eller göra uppdateringen i en loop (MEDAN du fortfarande hittar en nod med "billy", UPPDATERA den noden för att läsa "Peter" istället ).

Marc



  1. Hur man blir genomsnittlig med orderBy Desc i Laravel 5

  2. Flernivåmeny från databasposter

  3. Varför fungerar inte ODP.NET 11 xcopy-distribution på en dator med Oracle DB 10 installerat?

  4. Lägger dynamiskt till nollvärdade poster för efterföljande AP:er för att analytisk funktion ska fungera