一个SQL server的事务存储
-- =============================================
-- Author: Evan
-- Create date: 2018年6月14日 16点27分
-- Description: 冻结BOL不允许GI,或取消冻结
-- =============================================
ALTER PROCEDURE [dbo].[SP_FRU_FreezeGIByBOLorCancle]
(
@BOL NVARCHAR() ,
@UpdateBy NVARCHAR() ,
@Flag INT --0表示冻结,1表示取消,2查询未GI的BOL的冻结信息
)
AS
BEGIN
--开始事务
BEGIN TRANSACTION
--设置一个存储报错代码的变量
DECLARE @errorSum INT
SET @errorSum =
--在每一条涉及到数据变动的语句后都累加一次报错代码
IF ( @Flag = )
BEGIN
UPDATE ddd WITH ( ROWLOCK )
SET ddd.STATE = ,
ddd.UpdateBy = @UpdateBy ,
ddd.UpdateDate = GETDATE()
FROM dbo.Fn_Split(@BOL, '/') fn
LEFT JOIN dbo.D_ControlGIByBOL ddd ON fn.value = ddd.BOL
WHERE ddd.ID IS NOT NULL;
SET @errorSum += @@ERROR;
INSERT INTO dbo.D_ControlGIByBOL
( ID ,
BOL ,
State ,
CreateBy ,
CreateDate
)
SELECT NEWID() id ,
fn.value ,
state ,
@UpdateBy createby ,
GETDATE() createdate
FROM dbo.Fn_Split(@BOL, '/') fn
LEFT JOIN dbo.D_ControlGIByBOL ddd ON fn.value = ddd.BOL
WHERE ddd.ID IS NULL;
SET @errorSum += @@ERROR; END
IF ( @Flag = )
BEGIN
--------------------------------------------------取消冻结
UPDATE D_ControlGIByBOL WITH ( ROWLOCK )
SET State = ,
UpdateBy = @UpdateBy ,
UpdateDate = GETDATE()
WHERE BOL IN ( SELECT DISTINCT
fn.value
FROM dbo.Fn_Split(@BOL, '/') fn )
SET @errorSum += @@ERROR;
END
--报错代码不为0表示在执行上述sql时出现错误,回滚事务,撤销所有更改
IF ( @errorSum <> )
BEGIN
SELECT '执行错误:' + CAST(@errorSum AS VARCHAR());
ROLLBACK TRANSACTION
END
ELSE
--报错代码为0表示无报错信息,可以执行更改操作
BEGIN
IF ( @Flag = )
BEGIN
SELECT '批量冻结成功';
END
IF ( @Flag = )
BEGIN
SELECT '批量取消冻结成功';
END
IF ( @Flag = )
BEGIN
SELECT ddd.BOL,ddd.CreateBy,ddd.CreateDate,ddd.UpdateBy,ddd.UpdateDate,
CASE WHEN ddd.State= THEN '冻结'
WHEN ddd.State= THEN '未冻结'
ELSE '异常'
END as State
FROM dbo.D_ControlGIByBOL ddd
WHERE ddd.State =
ORDER BY CreateDate DESC
END
COMMIT TRANSACTION
END
END
一个SQL server的事务存储的更多相关文章
- 第十七周翻译-SQL Server中事务日志管理的阶梯,级别5:以完全恢复模式管理日志
SQL Server中事务日志管理的阶梯,级别5:以完全恢复模式管理日志 作者:Tony Davis,2012/01/27 翻译:赖慧芳 译文: 该系列 本文是Stairway系列的一部分:SQL ...
- SQL Server中事务日志管理的步骤,第5级:完全恢复模式管理日志(译)
SQL Server中事务日志管理的步骤,第5级:完全恢复模式管理日志 作者:Tony Davis,2012/01/27 系列 本文是进阶系列的一部分:SQL Server中事务日志管理的步骤 当事情 ...
- SQL Server中事务、锁定和阻塞
事务是什么 在SQL Server中事务是构成一个工作逻辑单元的一系列任务,也就说多个任务放在一起执行,这些任务要么全部执行成功,要么全部执行失败. 通过事务我们可以保证数据的完整性,例如:用户A给用 ...
- SQL Server提高事务复制效率优化(一)总体概述
随着公司业务的发展,数据量增长迅速,在解决Scale Out的同时,还要考虑到主从的复制延迟问题,尽量降到1s以内满足线上业务,如果不调整,SQL Server默认的配置可能平均要3s左右.生产的 ...
- SQL SERVER 分布式事务(DTC)
BEGIN DISTRIBUTED TRANSACTION指定一个由 Microsoft 分布式事务处理协调器 (MS DTC) 管理的 Transact-SQL 分布式事务的起始. 语法BEGIN ...
- 如何读懂SQL Server的事务日志
简介 本文将介绍SQL Server的事务日志中记录了哪一些信息,如何来读懂这些事务日志中信息.首先介绍一个微软没有公开的函数fn_dblog,在文章的接下来的部分主要用到这个函数来读取事务日志. f ...
- SQL Server 2016 查询存储性能优化小结
SQL Server 2016已经发布了有半年多,相信还有很多小伙伴还没有开始使用,今天我们来谈谈SQL Server 2016 查询存储性能优化,希望大家能够喜欢 作为一个DBA,排除SQL Ser ...
- SQL Server 之 事务与隔离级别实例讲解
SQL Server 之 事务与隔离级别实例讲解 SQL Server 实现了6个隔离级别来防止并发情况下,类似企图并发的访问或修改同一数据时问题的发生.本文将带你体验全部6个隔离级别.正如你接下来将 ...
- Step2:SQL Server 复制事务发布
一.背景 在复制的运用场景中,事务发布是使用最为广泛的,我遇到这样一个场景:在Task数据库中有Basic与Group两个表,需要提供这两个表的部分字段给其它程序读取放入缓存,程序需要比较及时的获取到 ...
随机推荐
- 启用数据库 aspnetstate 会话状态
http://www.cnblogs.com/klzwj1988/archive/2010/05/10/1731723.html
- 搭建Android 开发环境(精华)
http://www.cnblogs.com/xdp-gacl/p/4322165.html 孤傲苍狼 只为成功找方法,不为失败找借口! Android开发学习总结(一)——搭建最新版本的Androi ...
- GridView中数据行的操作
一个是直接动态绑定gridview 用3楼的办法就可以了 int j=1;//j的数值表示你要取的那一列的索引,要取第二列,j就设为1for (int i = 0; i < this.GridV ...
- HDOJ-2153
仙人球的残影 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- VS2017 不能创建 vsto Excel 工作簿程序的问题
最近想写个小程序,是基于vsto的excel 扩展程序. 打开vs2017,创建时,却提示 不能创建项目(创建项目失败,Project cannot be created).原本以为很顺利的,不相处了 ...
- yzm10与战地信使 yzm10原创系列
yzm10与战地信使 M国与R国正进行着激烈的鏖战,此时的yzm10从R国窃取了最高军事机密,这份情报将是此次战役的转折点,如果M国得到了这份情报,就能够取得这次战争的胜利.yzm10当然是站在M国这 ...
- .net core 高吞吐远程方法调用组件XRPC
XRPC的目标非常明确,就是给.net core平台实现一个百万级别的远程方法调用RPC通讯组件.它的设计理念和GRPC一样,基于连接复用的机制实现高吞的性能:XRPC采用了HTTP2复用的思想,在协 ...
- (转)深度学习(Deep Learning, DL)的相关资料总结
from:http://blog.sciencenet.cn/blog-830496-679604.html 深度学习(Deep Learning,DL)的相关资料总结 有人认为DL是人工智能的一场革 ...
- Codeforces86D【莫队算法】
题意: 给一个序列和一些区间,每次询问对区间所有不同的数,求每个不同的出现的个数的平方*其值的总和 2*2*1+1*1*2 思路: 裸的莫队算法. 补: 1.cmp写错. 2.LL运算不会进行转化. ...
- nodejs动态路由
主要功能:根据输入路由的不同,加载访问不同的HTML页面 在这里我不得不说webstorm真的是一个很棒的开发工具,我学习nodejs也是用的它. 文件目录: first_server.js: 首先我 ...