语法:
create proc 存储过程名
@参数1 数据类型=默认值 output,
@参数2 数据类型=默认值 output
as
sql语句
go
例子:
1 --创建带输入输出参数的存储过程 2 /* 3 题目要求 4 向母婴用品这个类添加一种商品,要求成功后把商品的编号输出 5 */ 6 7 use E_Market 8 go 9 10 if exists(select * from sysobjects where name=‘usp_InsertCommodity‘) 11 drop proc usp_InsertCommodity 12 go 13 create proc usp_InsertCommodity 14 @SortName varchar(50), --类别名称 15 @CommodityName varchar(100), --商品名称 16 @inprice money, --进货价 17 @outprice money, --销售价 18 @Amount int, --库存liang 19 @CommodityId int output --商品编号,输出参数 20 as 21 --根据输入的类别名称查询类别编号 22 declare @SortId int 23 select @SortId=SortId from CommoditySort where SortName=@SortName 24 --判断类别名称是否正确, 25 if @SortId is null 26 begin 27 print ‘对不起,输入的类别不存在!‘ 28 return --后面的代码无条件,退出了创建的存储过程 29 end 30 --向商品信息表插入数据 31 insert into CommodityInfo(SortId,CommodityName,InPrice,OutPrice,Amount) 32 values(@SortId,@CommodityName,@inprice,@outprice,@Amount) 33 --判断错误号是否大于0如果大于0说明插入有误 34 if @@ERROR >0 35 begin 36 print ‘插入信息失败!‘ 37 return 38 end 39 set @CommodityId=@@IDENTITY 40 go 41 42 --使用带输入输出参数的存储过程 43 --1)声明变量来调用(隐式调用,要求参数的顺序与存储过程参数的定义的顺序相同) 44 declare @sortName varchar(50), @commodityName varchar(100), 45 @inprice money,@outprice money, @amount int, @commodityId int 46 select @sortName=‘母婴用品‘,@commodityName=‘星飞帆1段‘, @inprice=100, @outprice=245,@amount=1000 47 exec usp_InsertCommodity @sortName,@commodityName,@inprice,@outprice,@amount,@commodityId output 48 print‘添加商品成功,商品编号为:‘ + convert(varchar(5), @commodityId) 49 --检测插入的信息 50 select * from CommodityInfo
原文地址:https://www.cnblogs.com/zhangxudong-cnblogs/p/10946058.html
时间: 2024-10-28 11:17:02