webForumDet fria alternativet

Uppdatering från en tabell till en annan

Databaser & SQL

4 svar · 540 visningar · startad av BrutalDeluxe

Medlem sedan nov. 200650 inlägg
Frågan#1

Vi har råkat ut för ett missöde på jobbet och jag har fått "äran" att lösa detta problem. Vi har en tabell med artiklar och i den har en kolumn vars alla rader har blivit satta till ett och samma värde. Behöver jag säga att någon har glömt WHERE i en UPDATE och den någon är inte jag tack och lov.

Vi har importerat en backup till SQL server så vi har en tre dagar gammal version av tabellen. Jag vill ju nu skriva en schyst SQL-sats som plockar ut ID och värde från backuptabellen och som uppdaterar id:t i vår tabell som råkat ut för missödet med värdet från backuptabellen. Borde vara ganska enkelt men jag är kass på SQL så jag blir jätteglad om någon vill hjälpa mig.

Backuptabell [id, gammal kommentar] -> Dagens tabell [id, ny nollställd kommentar]

Jag vill alltså plocka ut id och kommentar från gamla tabellen och stoppa in kommentaren på rätt ställe i dagens tabell... Jag vet inte om någon förstår vad jag menar :)

Medlem sedan dec. 200012 464 inlägg
#2
update newTable 
   set comment = 
     (select comment
         from oldTable
        where oldTable.id = newTable.id)
Medlem sedan mars 20058 inlägg
#3

Japp, jag kan intyga att det fungerar :)

Medlem sedan nov. 200650 inlägg
#4

Om man har flera fält som ska uppdateras då, hur gör man då? Kan man ha flera set i en update?

Medlem sedan dec. 200012 464 inlägg
#5

SQL server

update oldtable
    set comment = n.comment,
         oth = n.oth
  from oldtable o join newtable n on o.id = n.id
260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)