如果在存储过程中定义参数为output,则存储过程在退出时刻将该参数的当前值返回给调用程序。执行存储过程时,可以为output参数指定输入值,这样存储过程相当于从调用程序中接收了一个值,可以更改或对该值执行操作,返回新值给调用程序。
return表示从查询或过程中无条件退出,存储过程可以给调用程序或应用程序放回整形值,以表示过程的执行状态。除非特别指明,所有系统存储过程返回 0 值表示成功,返回非零值则表示失败。若要在调用程序中使用返回值,执行存储过程时必须将返回代码保存到变量中。
如:创建如下存储过程来为某书名报道销售情况:
return表示从查询或过程中无条件退出,存储过程可以给调用程序或应用程序放回整形值,以表示过程的执行状态。除非特别指明,所有系统存储过程返回 0 值表示成功,返回非零值则表示失败。若要在调用程序中使用返回值,执行存储过程时必须将返回代码保存到变量中。
如:创建如下存储过程来为某书名报道销售情况:
CREATE PROCEDURE get_sales_for_title
@title varchar(80), @ytd_sales int OUTPUT
AS
SELECT @ytd_sales = ytd_sales
FROM titles
WHERE title = @title
IF @@ROWCOUNT = 0
RETURN(-1)
ELSE
RETURN(0) 如果该存储过程成功执行,它应报道书的销售情况。如果失败,则将返回如下信息:“No Sales Found”:
创建脚本来执行该存储过程,
DECLARE @retval int
DECLARE @ytd int
EXEC @retval = get_sales_for_title ‘Net Etiquette’, @ytd OUTPUT
IF @retval < 0
PRINT ‘No sales found’
ELSE
PRINT ‘Year to date sales: ’ + STR (@ytd)
GO