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?
10 svar · 504 visningar · startad av Gimbo
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?
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
strSQL = "UPDATE ...."
objConn.execute strSQL, rowsaffected, 128
if rowsaffected = 0 then
strSQL = "INSERT..."
objConn.Execute strSQL,,128
end if
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
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ö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.
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
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.
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.