創建帶輸出參數的存儲過程


創建帶輸出參數的存儲過程

語法:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM