ironheadMedlem sedan mars 20011 346 inlägg Hej!
behöver hjälp med denna SP:
CREATE PROCEDURE ...
(
...
)
AS
BEGIN
SET NOCOUNT ON
if exists(SELECT....)
if <fält> = 0
UPDATE RecipeRate SET Rate=@sRate WHERE UserID=@suser and RecipeID=@sRecipeID
else
INSERT INTO RecipeRate (UserID,RecipeID,Rate) VALUES(@suser,@sRecipeID,@sRate)
END
RETURN
Jag vill att om post finns men ett viss fält är noll (0) (den röda texten) då ska updatesatsen köras annars en INSERT
går det att kolla värde i fältet direkt i SP eller måste jag lägga värdet i en variabel och sedan använda det?
if (select fält from tabell) = 0
ironheadMedlem sedan mars 20011 346 inlägg Fint! :) Nu ser den ut såhär:
CREATE PROCEDURE ...
(
...
)
AS
BEGIN
SET NOCOUNT ON
if exists(SELECT....)
if (select fält from tabell) = 0
UPDATE RecipeRate SET Rate=@sRate WHERE UserID=@suser and RecipeID=@sRecipeID
else
INSERT INTO RecipeRate (UserID,RecipeID,Rate) VALUES(@suser,@sRecipeID,@sRate)
END
RETURN
Kommer min if-satser att funka korrekt nudå?
att om posten finns och fält = 0 då uppdaterar vi
att om posten inte finns då blir det en INSERT
?
kommer inte andra if-satsen att "ta över" else?
eller är det bättre att göra såhär:
CREATE PROCEDURE ...
(
...
)
AS
BEGIN
SET NOCOUNT ON
if exists(SELECT....)
if (select fält from tabell) = 0
UPDATE RecipeRate SET Rate=@sRate WHERE UserID=@suser and RecipeID=@sRecipeID
if not exists(SELECT....)
INSERT INTO RecipeRate (UserID,RecipeID,Rate) VALUES(@suser,@sRecipeID,@sRate)
END
RETURN
ironheadMedlem sedan mars 20011 346 inlägg Drog till med det andra alternativet...funkar kanon...tack! :)
LarsGMedlem sedan dec. 200012 464 inlägg if (select fält from tabell) = 0
är inte bra om det finns mer än 1 post i tabellen. Använd if exists
ironheadMedlem sedan mars 20011 346 inlägg
LarsG skrev:
if (select fält from tabell) = 0
är inte bra om det finns mer än 1 post i tabellen. Använd if exists
Jag körde:
if (select fält from tabell WHERE fält1=@tjo AND fält2=@tjim) = 0
..är det ändå bättre att köra exists?