Parece que alguna vez el valor de retorno puede haber significado algo (ver referencia de pre SQL 2000 BOL return value article) antes de SQL Server 2000. He revisado para ver si podía encontrar una lista de estas declaraciones originales códigos específicamente para MS SQL, y encontró el following (aunque no sé su autenticidad, y en realidad no enumera los valores).
Entonces, después de leer todos estos artículos, parece que @return_status es un parámetro SIEMPRE devuelto cuando se ejecuta un procedimiento almacenado (incluso si no lo usa). De acuerdo con el artículo RETURN Libros en línea, el código de retorno NO PUEDE ser nulo.
Cuando se utiliza con un procedimiento almacenado, RETORNO no puede devolver un valor nulo. Si un procedimiento intenta devolver un valor nulo (por ejemplo, utilizando RETORNO @status cuando @status es NULO), se genera un mensaje de advertencia y se devuelve de 0.
Ejecución de la siguiente T-SQL muestra definitivamente esto,
create Procedure Test
as
begin
DECLARE @RTN integer
Return @RTN
END
GO
Exec Test
GO
Drop Procedure Test
GO
recibirá un
The 'Test' procedure attempted to return a status of NULL, which is not allowed. A status of 0 will be returned instead.
Al final parece que la respuesta es porque @return_status no puede ser nulo (siendo 0 cuando no está establecido, o establecido en NULO) ...
En cuanto al erro códigos R mencionadas en la supuesta BOL article para SQL 7.0, creo que ha de ser un antiguo dominio sobre de Sybase ... Sybase 5.0 Manual
Kris
Su enlace SQL 7 se ve bien. Hay copias de BOL salpicadas alrededor del interweb eléctrico que ocasionalmente sale a la superficie aquí, pero en este caso contribuye muy bien. – gbn