sql >> Base de Datos >  >> RDS >> Sqlserver

¿Es un valor de retorno de 0 siempre un éxito en los procedimientos almacenados?

No, puedes devolver algo tú mismo

ejemplo

CREATE PROC pr_test AS 
SELECT 1/0

RETURN 0
GO

Ahora ejecútalo

DECLARE @i INT
exec @i = pr_test

SELECT @i  -- will be 0

DROP PROC pr_test

Ahora hagámoslo de nuevo sin la declaración de devolución

CREATE PROC pr_test2 AS 
SELECT 1/0

GO

DECLARE @i INT
exec @i = pr_test2

SELECT @i  -- will be - 6

Es mejor usar un output parameter para devolver estados y/o mensajes