Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Um valor de retorno de 0 é sempre um sucesso em procedimentos armazenados?


Não, você mesmo pode devolver algo

exemplo
CREATE PROC pr_test AS 
SELECT 1/0

RETURN 0
GO

Agora execute
DECLARE @i INT
exec @i = pr_test

SELECT @i  -- will be 0

DROP PROC pr_test

Agora vamos fazer de novo sem a instrução return
CREATE PROC pr_test2 AS 
SELECT 1/0

GO

DECLARE @i INT
exec @i = pr_test2

SELECT @i  -- will be - 6

Melhor usar um output parameter para devolver status e/ou mensagens