Undertryk fejl (supress errors) i stored procedure
Jeg har en stored procedure hvori der bevistløst forsøges indsat records. Det er ok og hvis recorden findes i forvejen skal det ignoreres men dog sende fejl 3604 retur i RETURN_VALUEProceduren ser således ud (kører SQL-server 2000):
CREATE PROCEDURE SetForm @ref int,@formid int,@navn varchar(40),@fra_dato datetime,@til_dato datetime,@aktiv bit, @new_ref int OUTPUT
AS
DECLARE @Err int
IF @ref = 0
BEGIN
INSERT INTO form
(formid,navn,fra_dato,til_dato)
VALUES(@formid,@navn,@fra_dato,@til_dato)
SET @Err = @@ERROR
SET @new_ref = SCOPE_IDENTITY()
END
ELSE
BEGIN
UPDATE form
SET formid=@formid,navn=@navn,fra_dato=@fra_dato,til_dato=@til_dato,aktiv=@aktiv
WHERE ref = @ref
SET @Err = @@ERROR
SET @new_ref = @ref
END
RETURN(@Err)
Jeg havde håbet fejlen endte i @@ERROR og stoppede der, så jeg i fred og ro, kunne returnere koden i RETURN_VALUE'en.
Da jeg ikke har adgang til 2005's TRY CATCH vil jeg høre om man kan undertrykke/håndtere fejlen på anden måde.