| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2949 人关注过本帖
标题:每日一学:存储过程,返回多个参数。
只看楼主 加入收藏
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
结帖率:98.98%
收藏
 问题点数:0 回复次数:4 
每日一学:存储过程,返回多个参数。
--表数据
--drop table shoppe_kc
--go
--create table shoppe_kc(sp_bh varchar(6),sp_mc varchar(30),sp_dw varchar(4),sp_gg varchar(30),sp_jj numeric(9,2),sp_cb numeric(9,2),
--sp_sl int, sp_ud datetime,sp_bz varchar(80))
--go

--drop table shoppe_rk
--go
--create table shoppe_rk(sp_bh varchar(6),sp_mc varchar(30),sp_dw varchar(4),sp_gg varchar(30),sp_jj numeric(9,2),sp_cb numeric(9,2),
--sp_sl int, sp_rksl int,sp_rd datetime,sp_bz varchar(80),sp_yy varchar(12),sp_cz varchar(16),sp_gys varchar(30))
--go

--调用
exec shoppe_kc_update @bh,@jj,@sl,@gys,@yy,@cz,@ud,@bz,@kc_cb output,@kc_sl output,@kc_rs output

--建立存储过程
create procedure shoppe_kc_update
@bh varchar(6),@jj numeric(9,2),@sl int,@gys varchar(30),@yy varchar(12),@cz varchar(16),@ud datetime,@bz varchar(80),
@kc_cb numeric(9,2) output,@kc_sl int output,@kc_rs int output
as
begin
declare @kc_mc varchar(30),@kc_gg varchar(30),@kc_dw varchar(4),@res int
begin transaction
update shoppe_kc set sp_cb=(sp_cb*sp_sl+@jj*@sl)/(sp_sl+@sl),sp_sl=sp_sl+@sl,sp_jj=@jj where sp_bh=@bh
set @res=@@rowcount --更新库存数据
if @res > 0
   begin
     select @kc_mc=sp_mc,@kc_dw=sp_dw,@kc_gg=sp_gg,@kc_cb=sp_cb,@kc_sl=sp_sl from shoppe_kc where sp_bh=@bh
     set @res=@@rowcount --读取库存数据
     if @res > 0
        begin
          insert into shoppe_rk(sp_bh,sp_mc,sp_dw,sp_gg,sp_jj,sp_cb,sp_sl,sp_rksl,sp_rd,sp_bz,sp_yy,sp_cz,sp_gys)
            values(@bh,@kc_mc,@kc_dw,@kc_gg,@jj,@kc_cb,@kc_sl,@sl,@ud,@bz,@yy,@cz,@gys)
          set @res=@@rowcount --增加入库记录
          if @res <= 0
             set @kc_rs = -3 --增加入库失败
          else
             set @kc_rs = @res
        end
     else
        set @kc_rs = -2 --读取库存失败
   end
else
  begin
    set @kc_rs = -1 --更新库存失败
    set @kc_cb = 0.0
    set @kc_sl = 0
  end

if @kc_rs >0
   commit
else
   rollback transaction
end
2016-08-12 18:02
anky07
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-9-22
收藏
得分:0 
非常受用 大赞
2016-09-22 08:20
梦幻倩影
Rank: 5Rank: 5
等 级:职业侠客
威 望:8
帖 子:162
专家分:352
注 册:2016-8-19
收藏
得分:0 
2016-09-22 08:53
不堪回首
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-9-22
收藏
得分:0 
大赞!!!
2016-09-22 09:17
Owen2016
Rank: 3Rank: 3
等 级:论坛游民
威 望:6
帖 子:11
专家分:28
注 册:2016-7-20
收藏
得分:0 
学习了
2016-09-26 14:33
快速回复:每日一学:存储过程,返回多个参数。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018003 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved