MSSQl事务的使用

作者:网络    软件教程库   2020-05-21

注册了博客这么久没还好好写过文章呢?昨天看了我同学的博客,写的很好,每次用到以前的知识我就会去看看她写的博客,现在我也工作了,就来记录一下我现在用的知识吧,也方便我以后查阅。

那么我就先来介绍一下事务吧!事务具有以下四个特性:

1.原子性

事务的原子性是指事务中包含的所有操作要么全做,要么全不做。

2.一致性

在事务开始以前,数据库处于一致性的状态,事务结束后,数据库也必须处于一致性状态。

3.隔离性

一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

4.持久性

一个事务一旦成功完成,它对数据库的改变必须是永久的,即便是在系统遇到故障的情况下也不会丢失。数据的重要性决定了事务持久性的重要性。

事务最大的一个特点就是可以回滚,回滚就是回到执行操作之前的状态,只要有一个操作失败,那么事务就会回滚到操作之前的状态,例如银行转账,比如a账号给b账户转账10000元,由于计算机可能会因为停电、网络中断等原因而出现故障,所以有可能只更新b账户的金额,b账号金额多了10000块钱,而a账号金额没有减少,那银行不是亏大了吗?这时候事务的作用就体现出来了,事务可以帮助这个操作回滚到转账以前的状态,a账户金额没有减少,b账号金额也没有增多。

下面粘一个,我近期写的一个事务吧!

create proc [dbo].[shenqing_zuof]
@i_id int,
@returnvalue int output --输出参数,也就是返回值
as
declare @shijinum int,@productid int,@cangkuid int
select @shijinum=s_shijinum ,@productid=i_productid, @cangkuid=i_cangkuid from shenqing  where [email#160;protected]_id
begin tran  --标记事务的开始
begin 
	update shenqing set i_static=4,i_paifa=1 where i_id = @i_id
	if @@rowcount1
	goto error1
	update kucun set [email#160;protected] where [email#160;protected] and [email#160;protected]
	if @@rowcount1
	goto error2
end
commit tran   --提交事务
set @returnvalue=1  --正确执行
return
 
error1:
rollback
set @returnvalue=-1  --更新申请状态失败
return

error2:
rollback
set @returnvalue=-2  --更新辅助库存失败
return

我用到的有输出参数output,用来返回操作状态,@@rowcount是全局变量,返回受影响的行数。当@@rowcount1时代表更新语句执行失败,如果失败则跳转到error,事务回滚到操作之前的状态,并返回对应的返回值。一般把dml语句 (select,delete,update,insert语句)放在begin tran...commit tran 之间作为一个事务处理,也就是那些语句执行过程中如果遇到错误,无论哪句遇到错误,所有语句都会回滚到begin tran之前的状态。

mssql 事务的使用

原文地址:http://www.cnblogs.com/zhangjd/p/4481475.html

本文内容由软件教程库(原文链接:https://www.itjcku.com/9999/1091562.html)本站为各位整理

阅读全部内容


Tags:事务使用

返回首页



推荐内容

NSDictionary转化为NSData

之前自己写了nsdictionary转化为nsdata的一种方法如下 nsmutabledata *data = ...

nginx关键字

反向代理: proxy_pass: 负载均衡: upstream 负载均衡,有四种方式:     a/ 轮询 ...

Java设计模式之简单工厂模式

设计模式之简单工厂举例: l简单工厂模式概述 又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例 l优点 ...

解题报告之POJ3686TheWindy's

解题报告 之 poj3686 the windy‘s description the windy‘s i ...

【ThinkingInJava】18、关于java中的闭包与回调

/** * 书本:《thinking in java》 * 功能:关于java中的闭包与回调,这里回调区别于c++,c+ ...

TreasureHunting (hdu3468二分匹配+bfs最短路径)

treasure hunting time limit: 4000/2000 ms (java/others)mem ...

【ThinkingInJava】19、控制框架的实现

/** * 书本:《thinking in java》 * 功能:控制框架的实现 * 文件:event.java * 时 ...

【ThinkingInJava】20、控制框架的使用(初始化系统使用)

/** * 书本:《thinking in java》 * 功能:控制框架的实现,1、控制框架的完整实现是由单个的类创建 ...

最小汉密尔顿回路问题状态压缩dp

给定n个顶点做成的图,要求从顶点0出发经过所有点一次然后回到0点的一条权#20540;之和最小的一条路的权#20540; ...

POJ1966.CableTVNetwork——无向图的点连通度

http://poj.org/problemid=1966 题目描述: 有线电视网络中,中继器的连接是双向的。如果网 ...

Oracle备忘录1

数据库管理员:安装升级oracle数据库建库,表空间,表,视图,索引。。。制定并实施备份和修复计划数据库权限管理,调优, ...

FileStream文件流

使用文件流拷贝一个较大的多媒体文件: public static void copyfile(string soucr ...

C语言BFS(5)___TT与魔法师(swustoj2464)

description tt生活在一个充满魔法的国度,为了便于管理,国王请魔法师在一些重要的城市之间造出 ...

进程类Process与多线程Thread

进程类(process)的基本操作: //通过进程类查询系统所有进程 process[] pr ...

Xml解析方式之Pull解析器的使用

xml有多种解析的方式,这篇文章只介绍用pull解析器来解析xml文件,接下来我会说明使用pull解析器来读取xml文件 ...

enum,EnumMap,EnumSet

enum基本使用 : package com.enumtest; enum shrubbery { gr ...

Hibernate乱码问题解决

乱码问题其实归根接地就是两端的字符集不统一。 解决思路也有两种: 1. 修改两端字符集统一。 2. 通过代码进行转 ...

eclipse集成struts2.3.20

需要强调的是,这里介绍的是在eclipse工具下集成struts2.3.20而不是myeclipse添加对struts2 ...

ubi文件系统制作,还是"-c"选项的问题

以下是分析记录: --------------------------------------------------- ...

如何把事情做到最好读书笔记1

开篇语: 每个人生来都具备足够的潜力,每个人都能做到别人#30524;中难以企及的事情。请永远保持初学之心,勇敢面对 ...

如何把事情做到最好读书笔记2

第二章 认清自己:你属于哪种类型的人 你必须足够了解你自己,下面有三种类型的人、 (1)浅尝辄止者 浅尝辄止者对一切 ...

如何把事情做到最好读书笔记3

第三章 一份耕耘才能一份收获 当你决定踏上精益求精之路时,你会突然发现周围的一切都与你所追求的#26684;#2668 ...

如何把事情做到最好读书笔记4

第四章 热爱平台期 从小,我们接受的教育就是好好学习,这样才能上好的大学,上好的大学才能找到好工作,有好工作才能有钱买 ...

习题10-21二项式系数UVa1649

1.题目描述:点击打开链接 2.解题思路:本题利用枚举#43;二分解决。问题的关键是选对枚举对象,因为要找c(n,k)= ...

mysql小技巧

selectnow(),user(),version(),database(); #最后输入\c是放弃的意思 des ...

Java学习笔记——面试常客:写出一个死锁的例子

现在的面试挺蛋疼,为了考察大家的语言掌握水平,类#20284;这样的题特别多,不过在某个角度来说确实能看出一个人对某个知 ...

UVA-10396VampireNumbers暴力+打表

题目大意:给出n,要求你输出所有符合规则的n位数 规则如下,这个n位数由两个n/2位数相乘得到,并且满足 1.这n位 ...

CF148D.Bagofmice[概率dp]

题目链接:http://codeforces.com/problemset/problem/148/d 题目大意:一袋子 ...

HDU-1846-BraveGame(巴什博弈)

题目传送:brave game 介绍: 巴什博奕(bash game): 首先我们来玩一个比较古老的报数游戏。a ...

HDU-2149-PublicSale(巴什博弈)

题目传送:public sale 思路:巴什博弈 ac代码: #include lt;cstdiogt; # ...


本网站部分内容来自互联网,版权归原作者所有,文章内容仅代表原作者个人观点。如有侵权请联系我们删除 电子邮件 itjcku@foxmail.com