webForumDet fria alternativet

Insert sedan Update

10 svar · 504 visningar · startad av Gimbo

GimboMedlem sedan dec. 20001 630 inlägg
#1

Hejsan,

Vill gora som sa att om en email adress finns i databastabellen sa skall en update koras annars sa skall en insert goras och email adressen som skall kollas emot finns i en session?

@ndersMedlem sedan juni 200026 914 inlägg
#2

Jag antar att du använder ASP? Exempel:

strSQL = "UPDATE ...."
objConn.execute strSQL, rowsaffected, 128
if rowsaffected = 0 then
     strSQL = "INSERT..."
     objConn.Execute strSQL,,128
end if
Jesper TMedlem sedan nov. 20017 058 inlägg
#3
strSQL = "UPDATE ...."
objConn.execute strSQL, rowsaffected, 128
if rowsaffected = 0 then
     strSQL = "INSERT..."
     objConn.Execute strSQL,,128
end if
@ndersMedlem sedan juni 200026 914 inlägg
#4

Det är riktigt. Tidig morgon. :)

Redigerat.

Mvh

NöffMedlem sedan nov. 2003569 inlägg
#5

Men är det inte ganska känsligt att bara köra en UPDATE hursomhelst om man inte vet om det som ska uppdateras existerar eller inte?.

Är det inte bättre att först kolla om emailen verkligen finns där eller ej. Såhär:

[@dinemail är din emailparameter]

DECLARE @finns int

SET @finns=(SELECT TOP 1 ID FROM adresser WHERE email=@dinemail)

IF(@finns>0)
BEGIN
UPDATE adresser SET email=@dinemail
END
ELSE
BEGIN
INSERT INTO adresser (email) VALUES (@dinemail)
END

LarsGMedlem sedan dec. 200012 465 inlägg
#6

Men är det inte ganska känsligt att bara köra en UPDATE hursomhelst om man inte vet om det som ska uppdateras existerar eller inte?.

Nej.

NöffMedlem sedan nov. 2003569 inlägg
#7

Nej.

Hade gärna velat ha en mer detaljerad beskrivning.

Jesper TMedlem sedan nov. 20017 058 inlägg
#8

Nöff skrev:

Hade gärna velat ha en mer detaljerad beskrivning

Men är det inte så att updaten bara görs om det finns någon post.

NöffMedlem sedan nov. 2003569 inlägg
#9

Jo det är sant, men jag är alltid lite nojjig vad det gäller UPDATE, det är lätt att man slinter och råkar glömma ett ID och så uppdateras hela tabellen, och då är det ju tack och godnatt :bire

@ndersMedlem sedan juni 200026 914 inlägg
#10

Jo det är sant, men jag är alltid lite nojjig vad det gäller UPDATE, det är lätt att man slinter och råkar glömma ett ID och så uppdateras hela tabellen

Bara för att du glömmer ett ID uppdateras inte hela tabellen. Om du utelämnar WHERE-satsen, ja.

Men din rädsla för UPDATE har väl inget specifikt med denna fråga att göra? Det är precis lika farligt att glömma villkor i UPDATE-frågan om den post man egentligen ville uppdatera finns eller inte.

- - - - - -

Ett annat alternativ är att inte tillåta duplikater på mailadresser i tabellen, och börja med en INSERT. Får man ett fel tillbaka, då fanns posten redan, kör en UPDATE.

NöffMedlem sedan nov. 2003569 inlägg
#11

Men din rädsla för UPDATE har väl inget specifikt med denna fråga att göra? Det är precis lika farligt att glömma villkor i UPDATE-frågan om den post man egentligen ville uppdatera finns eller inte. Ett annat alternativ är att inte tillåta duplikater på mailadresser i tabellen, och börja med en INSERT. Får man ett fel tillbaka, då fanns posten redan, kör en UPDATE.

Det där känns litegrann som "skjut först, fråga sen"

Men jag är överens om att jag inte är överens med er. Vi lämnar det.

Genererad på 354 ms · cache AV · v20260730165559-full.f96bc7eb