--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

SQL添加事务处理的更多相关文章

  1. SQL SERVER事务处理

    SQL SERVER事务处理   一.事务定义: 事务是单个的工作单元.如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分. 如果事务遇到错误且必须取消或回滚,则所有 ...

  2. SQL Server 事务处理 回滚事务

    --创建表: GO CREATE TABLE [dbo].[tb1]( [Id] [int] NOT NULL, [c1] [nvarchar](50) NULL, [c2] [datetime] N ...

  3. VB.NET中使用Linq TO SQL添加数据后获得自增长列ID

    VB.NET中使用Linq TO SQL添加数据后获得自增长列ID: Dim tempOrdre As New Order With { .CustomerID = cmbCustomerName.S ...

  4. winform插入sql的事务处理

    实现目的:点击按钮,原子性执行两条sql语句,同时成功或同时失败 数据库有这三个字段(忽略已有的一条记录): 一.用事务的sql语句 按钮事件完整代码: //事务处理插入sql语句 using (SQ ...

  5. Oracle与SQL Server事务处理的比较

    事务处理是所有大型数据库产品的一个关键问题,各数据库厂商都在这个方面花费了很大精力,不同的事务处理方式会导致数据库性能和功能上的巨大差异.事务处理也是数据库管理员与数据库应用程序开发人员必须深刻理解的 ...

  6. c# + Sql server 事务处理

    事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位. 通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便 ...

  7. SQL - 添加外键

    不解释: ---先创建外键的column ALTER TABLE tblLicenses ADD ProductID int not null; ---添加外键 ALTER TABLE tblLice ...

  8. sql添加字段说明

    1,sql字段说明 添加 exec sp_addextendedproperty  N'MS_Description', N'主键', N'user', N'dbo', N'table', N'Fre ...

  9. 探究SQL添加非聚集索引,性能提高几十倍之谜

    上周,技术支持反映:客户的一个查询操作需要耗时6.1min左右,在跟进代码后,简化了数据库的查询后仍然收效甚微.后来,技术总监分析了sql后,给其中的一个表添加的一个非聚集索引(三个字段)后,同样的查 ...

随机推荐

  1. Go 初体验 - 错误与异常处理 - recover和panic

    先看代码: 输出: 内建函数panic可以让我们人为地产生一个运行时恐慌.不过,这种致命错误是可以被恢复的.在Go语言中,内建函数recover就可以做到这一点. 实际上,内建函数panic和reco ...

  2. codeforces-3

    C Game"23" #include<iostream> using namespace std; int main() { long long n,m; long ...

  3. 机器学习算法GBDT

    http://www-personal.umich.edu/~jizhu/jizhu/wuke/Friedman-AoS01.pdf https://www.cnblogs.com/bentuwuyi ...

  4. C#-----集合List<T>的常用方法

        雇员实体类 using System; using System.Collections.Generic; using System.Linq; using System.Text; usin ...

  5. 2017-2018-2 20155228 《网络对抗技术》 实验三:MAL_免杀原理与实践

    2017-2018-2 20155228 <网络对抗技术> 实验三:MAL_免杀原理与实践 实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasi ...

  6. virtualenv的使用

    virtualenv 是一个创建隔绝的Python环境的工具.在向服务器导入第三方库的时候特别有用. 1.首先,安装virtualenv pip install virtualenv 2.创建一个虚拟 ...

  7. Java8-对map过滤

    1.对map按值过滤返回值 public class TestMapFilter { public static void main(String[] args) { Map<Integer, ...

  8. mysql的sql_mode设置

    参考官方文档: mysql可以为不同的客户端设置不同的sql_mode,并且每个应用能够设置他自己的会话级别的sql_mode.sql_mode会影响sql语法以及mysql显示数据的正确性. Whe ...

  9. Linux error numbers

    Linux error numbers, straight from the horse's mouth. #define EPERM 1 /* Operation not permitted */ ...

  10. golang获取文件的md5

    直接展示代码 func md5sum(filepath string) (string, error) { f, err := os.Open(filepath) if err != nil { st ...