Siempre utilizo el valor de retorno para devolver el estado de error. Si necesita devolver un valor, usaría un parámetro de salida.
muestra de procedimiento almacenado, con un Parámetro de salida:
CREATE PROCEDURE YourStoredProcedure
(
@Param1 int
,@Param2 varchar(5)
,@Param3 datetime OUTPUT
)
AS
IF ISNULL(@Param1,0)>5
BEGIN
SET @Param3=GETDATE()
END
ELSE
BEGIN
SET @Param3='1/1/2010'
END
RETURN 0
GO
llamada al procedimiento almacenado, con un Parámetro de salida:
DECLARE @OutputParameter datetime
,@ReturnValue int
EXEC @ReturnValue=YourStoredProcedure 1,null, @OutputParameter OUTPUT
PRINT @ReturnValue
PRINT CONVERT(char(23),@OutputParameter ,121)
SALIDA:
0
2010-01-01 00:00:00.000
¿Esto es para SQL Server? tu código se parece a TSQL. Si es así, obtendrá más vistas y respuestas si lo etiqueta "sql-server" –