使用return关键字进行返回
遇到return关键字存储过程中的后续代码无条件不执行,既退出了当前的存储过程
根据返回值对存储过程的结果做出相应的处理
例子:
1 --创建带返回值的存储过程 2 3 /* 4 向母婴用品中添加一条商品信息 5 6 */ 7 use E_Market 8 go 9 if exists(select * from sysobjects where name='usp_InsertCommodityReturn')10 drop proc usp_InsertCommodityReturn11 12 go13 create proc usp_InsertCommodityReturn14 @SortName varchar(50), --类别名称15 @CommodityName varchar(100), --商品名称16 @inprice money, --进货价17 @outprice money, --销售价18 @Amount int --库存liang19 20 as21 declare @sortid int22 select @sortid=SortId from CommoditySort where SortName=@SortName23 --根据类别名称判断类别编号是否存在24 if @sortid is null25 begin26 return -1 --用-1代表类别名称不正确27 end28 --向商品信息表添加一条信息29 insert into CommodityInfo(SortId,CommodityName,InPrice,OutPrice,Amount)30 values(@SortId,@CommodityName,@inprice,@outprice,@Amount)31 if @@ERROR > 032 begin33 return 0 --用0代表插入信息失败34 end35 else 36 begin37 return @@identity38 end39 go40 41 --使用带返回值的存储过程,返回值,有三个,0,-1.商品编号42 --使用显示调用43 declare @Result int --接收存储过程的返回值44 exec @Result=usp_InsertCommodityReturn @sortName='汇吃美食',@commodityName='好吃点',@inprice=3.5,@outprice=7.6,@amount=10045 if @Result=-146 begin47 print '对不起,输入的类别名称不存在!'48 end49 else if @Result=050 begin51 print'插入信息失败!'52 end53 else54 begin55 print '添加商品成功!商品编号为:' + convert(varchar(5),@Result)56 end57 go58 59 select * from CommoditySort60 select * from CommodityInfo