SQL存储过程中用输出参数和用RETURN有什么区别

gogodiy 2010-11-03 03:03:41
一直以来有个问题不清楚,就是在SQL的存储过程中,定义一个OUTPUT参数,和使用RETURN直接返回值,两者之间究竟有什么区别,各自在使用上有什么特别需要注意的地方。
比如:
CREATE PROCEDURE [dbo].[ABC]
DECLARE @Result INT OUTPUT
.
.
.
其他SQL语句
.
.
.

SET @Result = -1

RETURN -1
的区别。是不是还和调用存储过程那里的程序设计有关?
...全文
435 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
happy664618843 2010-11-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chuifengde 的回复:]

output可以返回多个值,其类型也是多样性的
而return只返回int型,其值在编程中一般用来表示存储过程的执行状态
[/Quote]
brownhwy 2010-11-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chuifengde 的回复:]
output可以返回多个值,其类型也是多样性的
而return只返回int型,其值在编程中一般用来表示存储过程的执行状态
[/Quote]
up...
幸运的意外 2010-11-03
  • 打赏
  • 举报
回复
用输出参数output可以输出任意类型的结果(不包括表类型),而return只能返回整型并且总能返回一个整型值。一般的return用来终止存储过程的进行并返回。所以return一般返回的值是0。而输出参数的话,就类似于其他编程语言里的按照地址传送的参数那样,大同小异。
chuifengde 2010-11-03
  • 打赏
  • 举报
回复
output可以返回多个值,其类型也是多样性的
而return只返回int型,其值在编程中一般用来表示存储过程的执行状态
abuying 2010-11-03
  • 打赏
  • 举报
回复
RETURN
从查询或过程中无条件退出。RETURN 即时且完全,可在任何时候用于从过程、批处理或语句块中退出。不执行位于 RETURN 之后的语句。
返回的整型值。存储过程可以给调用过程或应用程序返回整型值

除非特别指明,所有系统存储过程返回 0 值表示成功,返回非零值则表示失败。

当用于存储过程时,RETURN 不能返回空值。如果过程试图返回空值(例如,使用 RETURN @status 且 @status 是 NULL),将生成警告信息并返回 0 值。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧