Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ist ein Rückgabewert von 0 immer ein Erfolg in gespeicherten Prozeduren?

Nein, Sie können selbst etwas zurücksenden

Beispiel

CREATE PROC pr_test AS 
SELECT 1/0

RETURN 0
GO

Führen Sie es jetzt aus

DECLARE @i INT
exec @i = pr_test

SELECT @i  -- will be 0

DROP PROC pr_test

Machen wir es jetzt noch einmal ohne die return-Anweisung

CREATE PROC pr_test2 AS 
SELECT 1/0

GO

DECLARE @i INT
exec @i = pr_test2

SELECT @i  -- will be - 6

Verwenden Sie besser einen output parameter um Status und/oder Nachrichten zurückzugeben