Procedurile stocate pot avea parametrii tip OUTPUT pentru a returna diverse valori.
De asemenea intr-o procedura stocata se poate folosi instructiunea RETURN pentru a returna o valoare INT.
Poti sa executi o procedura stocata folosind EXECUTE.
Poti sa verifici daca o anumita linie dintr-un script SQL a fost executata cu succes folosind
@@ERROR (SQL2000)
sau / si
TRY ... CATCH (SQL2005).
Exemplu pt. SQL2005 (o solutie):
CREATE PROCEDURE proc6
@param1 INT,
@param2 INT,
@param3 INT,
@param4 INT,
@param5 INT,
@eroare INT OUTPUT
AS
DECLARE @rezultat INT
EXECUTE @rezultat = procedura1 @param1
IF ( @rezultat != 0 )
BEGIN
SET @eroare = @rezultat
RETURN 1 --eroare la executia procedurii 1
END
EXECUTE @rezultat = procedura2 @param2
IF ( @rezultat != 0 )
BEGIN
SET @eroare = @rezultat
RETURN 2 --eroare la executia procedurii 2
END
--executia celoralante proceduri
EXECUTE @rezultat = procedura5 @param5
IF ( @rezultat != 0 )
BEGIN
SET @eroare = @rezultat
RETURN 5 --eroare la executia procedurii 5
END
RETURN 0 --executia celor 5 proceduri s-a incheiat cu succes
Fiecare din cele 5 proceduri pot fi definite astfel (o posibila solutie):
CREATE PROCEDURE procedura1
@p INT
AS
BEGIN TRY
SELECT ___
INSERT ___
UPDATE ___
RETURN 0
END TRY
BEGIN CATCH
RETURN ERROR_NUMBER()
END CATCH
Folosesti si tranzactii ?