来源于:http://www.cnblogs.com/zhuifengnianshao/archive/2010/11/24/1886939.html事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。
通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。
在sql server+ .net 开发环境下,有两种方法能够完成事务的操作,保持数据库的数据完整性;
一个就是用sql存储过程,另一个就是在ADO.NET中一种简单的事务处理;
现在通过一个典型的银行转账的例子来说明一下这两个例子的用法
我们先来看看sql存储过程是如何来完成事务的操作的:
首先创建一个表:
create database aaaa --创建一个表,包含用户的帐号和钱数
go
use aaaa
create table bb
(ID int not null primary key,  --帐号moneys money    --转账金额
)
insert into bb values ('1','2000') --插入两条数据
insert into bb values ('2','3000')
用这个表创建一个存储过程:create procedure mon --创建存储过程,定义几个变量@toID int,    --接收转账的账户@fromID int ,  --转出自己的账户@momeys money --转账的金额asbegin tran --开始执行事务update bb set moneys=moneys-@momeys where ID=@fromID -执行的第一个操作,转账出钱,减去转出的金额update bb set moneys=moneys+@momeys where ID=@toID --执行第二个操作,接受转账的金额,增加if @@error<>0 --判断如果两条语句有任何一条出现错误begin rollback tran –开始执行事务的回滚,恢复的转账开始之前状态return 0endgoelse   --如何两条都执行成功begin commit tran 执行这个事务的操作return 1endgo

  

转载于:https://www.cnblogs.com/alphafly/p/3939337.html

SQL中的事物【转】相关推荐

  1. JDBC中的事物处理

    一项事物是由一个或是多个操作所组成的一个不可分割的工作单元.我们通过提交commit()或是回退rollback()来结束事务的操作. JDBC的事物处理包括三个方面: 1:自动提交模式: 2:事务隔 ...

  2. sql中的Tran和C#中的TransactionScope介绍

    sql 中的Tran 俩种写法 第一种写法 try catch: Begin TRYBegin Tran transactionDECLARE @ServiceOrderId INT SET @Ser ...

  3. SQL中Truncate的用法

    转自:https://www.cnblogs.com/zhoufangcheng04050227/p/7991759.html 本文导读:删除表中的数据的方法有delete,truncate, 其中T ...

  4. sql中“delete from 表名”表示_SQL查询语句知识点总结

    为什么要学习SQL? 数据分析岗位的基础技能:SQL语句和会使用SQL语句操纵数据库软件: 数据量增大的工具需求:excel处理十万以内的数据:数据量增大,需要使用更快速便捷的工具分析数据. SQL知 ...

  5. SQL 中循环、for循环、游标

    我们使用SQL语句处理数据时,可能会碰到一些需要循环遍历某个表并对其进行相应的操作(添加.修改.删除),这时我们就需要用到咱们在编程中常常用的for或foreach,但是在SQL中写循环往往显得那么吃 ...

  6. SQL中的case when then else end用法

    2019独角兽企业重金招聘Python工程师标准>>> Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sexWHEN '1' THEN ...

  7. 在SQL中使用CRL函数示例

    在SQL中使用CRL函数 实验目标: 1. 在SQL中创建CRL函数,使之能够向指定的计算机发送消息 实验步骤 2. 在VS中创建类发送消息的类 3. 将以下代码黏贴进去 using System; ...

  8. pl/sql中三种游标循环效率对比

    pl/sql中三种游标循环效率对比 - Oracle数据库栏目 - 红黑联盟 http://www.2cto.com/database/201307/224636.html 转载于:https://b ...

  9. SQL中内连接、外连接、交叉连接

    SQL中内连接.外连接.交叉连接 SQL连接可以分为内连接.外连接.交叉连接. 数据库数据:            book表                                      ...

最新文章

  1. 《深入解析Android 5.0系统》——第1章,第1.2节安装开发包
  2. 5G与WiFi 6之争,对物联网意味着什么
  3. 大学计算机基础知识判断题,大学计算机基础学习知识判断题.doc
  4. 软件测试基础:MantisBT的安装配置及使用——BUG管理工具
  5. Java基础—集合2Set接口和Map接口
  6. win10透明任务栏_TranslucentTB打造win10透明任务栏
  7. SunnyOS准备4
  8. Linux 网络配置 修改DNS配置文件/etc/resolv.conf后,重启网络,DNS配置丢失
  9. webm格式怎么转换成mp4
  10. android的天气和时钟部件,时钟天气小部件
  11. 【今日小记】程序员的孤独,没人懂
  12. w3c标准语言的是什么,W3C标准及其规范 - Somuns的个人空间 - OSCHINA - 中文开源技术交流社区...
  13. 一个故事弄懂域名解析
  14. R语言学习之科学计算——求导与积分
  15. java体重指数计算器程序_Android首接触--小程序(体重指数计算器)
  16. 图像均值、标准差、变异系数的意义
  17. antdesign-mobile 图片选择器ImagePicker反写
  18. 乌鲁木齐疾控中心项目电力监控系统的研究与应用
  19. JS 多次请求接口,按顺序依次等待执行
  20. 用php编写一个正方体,three.js画一个3D立体的正方体教程

热门文章

  1. python importlib_importlib --- import 的实现 — Python 3.10.0a2 文档
  2. C++多线程快速入门(二)共享数据同步以及数据竞争
  3. getcwd函数_PHP getcwd()函数与示例
  4. 2013年 833c语言程序 江南大学 (A卷)
  5. linux下mac风格菜单栏,ubuntu 8.04 安装mac风格菜单
  6. ropgadgets与ret2syscall技术原理
  7. arrays中copyof复制两个数组_数据结构与算法(3)数组
  8. python语言用什么关键字来声明一个类_Python语言和标准库(第三章:类和对象)...
  9. 计算机启动和linux启动
  10. c++中的set容器和multiset容器