一直以来有个问题不清楚,就是在SQL的存储过程中,定义一个OUTPUT参数,和使用RETURN直接返回值,两者之间究竟有什么区别,各自在使用上有什么特别需要注意的地方。
比如:
CREATE PROCEDURE [dbo].[ABC]
DECLARE @Result INT OUTPUT
.
.
.
其他SQL语句
.
.
.SET @Result = -1
和
RETURN -1
的区别。是不是还和调用存储过程那里的程序设计有关?
比如:
CREATE PROCEDURE [dbo].[ABC]
DECLARE @Result INT OUTPUT
.
.
.
其他SQL语句
.
.
.SET @Result = -1
和
RETURN -1
的区别。是不是还和调用存储过程那里的程序设计有关?
从查询或过程中无条件退出。RETURN 即时且完全,可在任何时候用于从过程、批处理或语句块中退出。不执行位于 RETURN 之后的语句。
返回的整型值。存储过程可以给调用过程或应用程序返回整型值除非特别指明,所有系统存储过程返回 0 值表示成功,返回非零值则表示失败。当用于存储过程时,RETURN 不能返回空值。如果过程试图返回空值(例如,使用 RETURN @status 且 @status 是 NULL),将生成警告信息并返回 0 值。
而return只返回int型,其值在编程中一般用来表示存储过程的执行状态