zoukankan      html  css  js  c++  java
  • SQL添加事务处理

    --modi by lmt
    declare
    @errorSum int --记录错误数
    begin
    Create table #CheckreqAccState(CheckReqID varchar(20), ADVID varchar(20), DocAdvStatus int, AccState varchar(20))
    set @SqlTxt = 'insert into #CheckreqAccState(CheckReqID, ADVID, DocAdvStatus, AccState)
    select A.CheckReqID, A.ADVID, B.DocAdvStatus, AccState from GHMTDB..tCheckReq_Main(nolock) A Left join GHMTDB.dbo.tRecipe_Detail(nolock) B on A.ADVID = B.ADVID
    where A.CheckReqID in (' + @CheckReqID + ')'
    exec(@SqlTxt)
    if exists(select * from #CheckreqAccState where DocAdvStatus < 3)
    begin
    set @ReqInfor = '确费失败:申请单号中【' + @CheckReqID +'】存在未扣费的记录,请核实'
    drop table #CheckreqAccState
    goto Err
    end
    else
    begin transaction
    Update GHMTDB..tCheckReq_Main
    Set State = 3, ReportUser = @OperUserID, ReportDate = GetDate()
    Where CheckReqID in (select CheckReqID from #CheckreqAccState)
    set @errorSum=@errorSum + @@error
    update tRecipe_Detail
    set PerformUserID = @OperUserID, DocAdvStatus = 5,
    PerformDate = GETDATE()
    where ADVID in (select ADVID from #CheckreqAccState)
    set @errorSum=@errorSum+@@error
    update tRecipe_Detail_FeeItem
    set PerformUserID = @OperUserID, DocAdvStatus = 5,
    PerformDate = GETDATE()
    where ADVID in (select ADVID from #CheckreqAccState)
    set @errorSum=@errorSum+@@error
    update tChargeDetail
    set PerformUserID = @OperUserID, DocAdvStatus = 5,
    PerformDate = GETDATE()
    where ADVID in (select ADVID from #CheckreqAccState)
    set @errorSum=@errorSum+@@error
    drop table #CheckreqAccState
    if @errorSum > 0
    begin
    set @ReqInfor = '执行失败'
    select @ReqInfor 'ReqInfor',@ChargeSN 'ChargeSN'
    rollback transaction
    end
    else
    begin
    set @ReqInfor = '执行完成'
    select @ReqInfor 'ReqInfor',@ChargeSN 'ChargeSN'
    commit transaction
    end
    end
    end --end else if @DataSource = '门诊'
    end--modi end

    撸起袖子加油干。
  • 相关阅读:
    CentOS搭建LAMP环境
    CentOS下为Apache部署Symantec SSL证书并实现强制https访问
    [Raspi]树莓派4B装机使用上手指南
    [FPGA]Verilog利用PWM调制完成RGB三色彩虹呼吸灯
    [FPGA]浅谈LCD1602字符型液晶显示器(Verilog)
    [FPGA]Verilog实现JK触发器组成的8421BCD码十进制计数器
    [FPGA]Verilog实现可自定义的倒计时器(24秒为例)
    [FPGA]Verilog实现8位串并转换器HC595
    [FPGA]Verilog实现寄存器LS374
    STM32F407之USART
  • 原文地址:https://www.cnblogs.com/meitai/p/9227235.html
Copyright © 2011-2022 走看看