MickeA.comMedlem sedan feb. 20034 528 inlägg
Tjena
Jag ska uppdatera 85 Poster i en SQL Server Databas.
Plockar ut de aktuella posterna såhär:
SELECT
b.id
FROM customers a, regsites b
WHERE a.customer_flag = 11
AND a.id = b.cId
AND b.sSajt = 'Parbet'
Nu ska jag uppdatera de här posterna, kan jag då köra det här?
UPDATE regsites SET
sSajt = 'Betsafe'
WHERE id IN (
SELECT
b.id
FROM customers a, regsites b
WHERE a.customer_flag = 11
AND a.id = b.cId
AND b.sSajt = 'Parbet'
)
Jag är helsäker på att det här _bör_ funka, inget annat får absolut uppdateras, förutom de här 85 posterna jag plockar ut i mitt övre exempel.
Vad tror ni?
Tack!
GeinMedlem sedan sep. 20004 849 inlägg
Använd dig av transaktionshanteringen.
Kör
BEGIN TRAN
UPDATE regsites SET
sSajt = 'Betsafe'
WHERE id IN (
SELECT
b.id
FROM customers a, regsites b
WHERE a.customer_flag = 11
AND a.id = b.cId
AND b.sSajt = 'Parbet'
)
Kolla att endast dina 85 rader uppdaterades och kör isåfall
COMMIT TRAN
Om det inte stämmer så kör du istället
ROLLBACK
MickeA.comMedlem sedan feb. 20034 528 inlägg
Aha, så det funkar så, tack!
Nu körde jag mitt script ovan och den uppdaterade bara de 85 aktuella posterna, så allt fungerade som det skulle, men det kan vara mkt bra att använda det där framöver.
:)
En fråga till bara, kör jag allt det där i Query Browser (eller vad det heter), väljer tabell, högerklickar, script table as - UPDATE to och sen kör de där tre?
GeinMedlem sedan sep. 20004 849 inlägg
Ja, så kan du göra. Utnyttja att du kan exekvera vissa kommandon i taget genom att markera kommandot och trycka Ctrl-E, för du vill ju inte köra alla tre kommandon på en gång (eftersom du inte vet om du ska köra COMMIT TRAN eller ROLLBACK).
MickeA.comMedlem sedan feb. 20034 528 inlägg
Nä just det.
Tack för hjälpen!