18
2012
07

存储过程用例--新增、修改、删除数据


set ANSI_NULLS ON  

set QUOTED_IDENTIFIER ON  

go  

/*****************************************************  

** PROCEDURE : pro_set_so_cust_info  

** DECRIPTION: 维护客户资料信息  

** DATE      : 2012-07-14  

** VERSION      AUTH          DATE          Defect No           DESC  

** --------  ------------  ------------  -----------------   ------------------------------  

** V000.0.1    pukuimin     2012-07-14                          新建程序  

** --------  ------------  ------------  -----------------   -------------------------------  

*******************************************************/  

ALTER procedure [dbo].[pro_set_so_cust_info](  @opr_typ int , -- 1:新增 2: 修改 3:删除  

                                    @CUST_CD  编号, --客户编号  

                                    @CUST_NAM  varchar(200), --客户名称  

                                    @ret varchar(20) output-- 0:成功, 其他:失败   

                                 )as  

begin  

    declare @cust_cd2 varchar(20),  

            @cur_date datetime  

    set @cur_date = getdate()  

    begin try  

        --  

        if @opr_typ = 1  -- 新增  

        begin  

            -- 获取编码  

            exec dbo.pro_sys_generate_code 'KH', @cur_date,@cust_cd2 output  --调用其它存储过程,返回编码  

              

            INSERT INTO t_so_cust_info(  

                  cust_cd,  

                  cust_nam,  

                  )  

            VALUES(  

                  @cust_cd2,  

                  @cust_nam,  

                  )  

            SELECT @ret = max(id) FROM T_SO_CUST_INFO  

              

        end else  

        if @opr_typ = 2 -- 修改,将之前的状态修改为0,然后新增  

        begin  

            SELECT @create_usr_id = create_usr_id , @cur_date = create_dtim  

                FROM t_so_cust_info WHERE id = @id   

            update t_so_cust_info set stat = 0 where id = @id  

            INSERT INTO t_so_cust_info(  

                  cust_cd,  

                  cust_nam,  

                  )  

        select  

                  @cust_cd,  

                  @cust_nam,  

            from t_so_cust_info  

           where id = @id   

            SELECT @ret = max(id) FROM T_SO_CUST_INFO  

        end else   

        if @opr_typ = 3 -- 删除,将状态修改为0,表示不可用,不对数据库做物理删除  

        begin                 

                update t_so_cust_info set stat = 0   

                                ,LAST_UPDT_USR_ID = @LAST_UPDT_USR_ID  

                                ,LAST_UPDT_DTIM = GETDATE()  

                                ,STAT_DTIM = GETDATE()  

                where id = @id  

                  

            set @ret = 0  

        end  

    end try  

    begin catch  

        set @ret = 'error:'+cast(ERROR_NUMBER() AS varchar(20))  

    end catch  

end  

  

  

/*          测试  

declare @ret varchar(20)  

exec pro_set_so_cust_info           1 , -- 1:新增 2: 修改 3:删除  

                                    '123231', --客户编号  

                                    @ret output-- 0:成功, 其他:失败   

print @ret  

*/  




版权声明:
作者:真爱无限 出处:http://www.pukuimin.top 本文为博主原创文章版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接.
« 上一篇下一篇 »

相关文章:

评论列表:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。