存储过程-返回值

返回值

存储过程的返回值
使用 RETURN 语句指定存储过程的返回代码。
如果返回值在-1到-99之间,表示没有成功执行,可以通过判断返回值来进行相应的处理。
可以用RETURN语句将大于0或者小于-99的整数作为自定义返回值,来表示不同的执行结果。
典型代码
DECLARE @result INT
EXECUTE @result=my_pro

【例】创建存储过程,根据读者证号获取已经还回图书的册数,并使用自定义返回值标识执行状态。自定义返回值的含义如下:
 0 成功执行。
 1 未指定所需参数值。
 2 指定参数值无效。
 3 获取借阅历史数据时出错。
    代码如下
CREATE PROCEDURE usp_Get_ReturnedItemCount
     @PatronID VARCHAR(20) = NULL,
     @COUNT INT OUTPUT
AS

BEGIN
 SET NOCOUNT ON;
 IF @PatronID IS NULL  RETURN (1)
 ELSE
 BEGIN
     -- 确认有该读者证号
     IF (SELECT COUNT (*) FROM Patron
                        WHERE PatronID=@PatronID)= 0
        RETURN (2)
 END
 SELECT @COUNT= COUNT(*)  FROM Lend
 WHERE PatronID = @PatronID
 IF @@ERROR <> 0
        RETURN (3)
 ELSE
        RETURN (0)
END

执行代码
DECLARE @PatronID VARCHAR(20),@nCount INT,@nRtn INT  --声明变量
SELECT @PatronID ='T0101'     --给变量赋值
EXECUTE @nRtn=usp_Get_ ReturnedItemCount @PatronID,
                                         @nCount OUTPUT;
IF @nRtn = 0    --检查返回值
BEGIN
 PRINT '执行成功!'
 PRINT '您已经归还' + CONVERT(VARCHAR(10),@nCount)+'册图书!'
END
ELSE IF @nRtn = 1
       PRINT '必须输入读者证号.'
ELSE IF @nRtn = 2
       PRINT '无此读者.'
ELSE IF @nRtn = 3
       PRINT '获取数据出错.'
ELSE
       PRINT '其他错误'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值