事务(Transaction)

什么是事务(Transaction)

指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)--

也就是由多个sql语句组成,必须作为一个整体执行

这些sql语句作为一个整体一起向系统提交,

要么都执行、要么都不执行

为什么需要事务

如,借钱问题:

假定钱从A转到B,至少需要两步:

A的资金减少

然后B的资金相应增加

语法步骤:

开始事务:BEGIN TRANSACTION

事务提交:COMMIT TRANSACTION

事务回滚:ROLLBACK TRANSACTION

判断某条语句执行是否出错:

全局变量@@ERROR;

@@ERROR只能判断当前一条T-SQL语句执行是否有错,

为了判断事务中所有T-SQL语句是否有错,我们需要对错误进行累计;

例:SET @[email protected][email protected]@error

时间: 2024-10-25 22:30:13

事务(Transaction)的相关文章

Android学习---SQLite数据库的增删改查和事务(transaction)调用

上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代码实现增删查改: 1.创建DB工具类 MyDBHelper.java(创建数据库的操作) package com.amos.android_db; import android.content.Context; import android.database.sqlite.SQLiteDatabas

Spring事务Transaction配置的五种注入方式详解

Spring事务Transaction配置的五种注入方式详解 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的. ??? 总结如下: ??? Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource.TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分. ???DataSou

关于FMDB事务(Transaction)的解读

事务(Transaction)的描述: 事务(Transaction)是并发控制的基本单位.所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位.例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行.所以,应该把它们看成一个事务.事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性.针对上面的描述可以看出,事务的提出主要是为了解决并发情况下保持数据一致性的问题. 事务的标准定义: 指作为单个逻辑工作单元执

JAVA学习笔记(五十四)- 事务Transaction与批处理

事务Transaction /* * 事务Transaction * JDBC默认开启自动提交事务,需要关闭,才能手动控制事务 * * 默认MySQL存储引擎为My...,其不支持事务处理,修改为InnoDB引擎 * create table 表名( ) engine=InnoDB default charset=utf8; * * InnoDB引擎默认关闭自动事务提交,修改MySQL为自动提交事务 * set autocommit=1; //1表示自动提交,0表示关闭自动提交 * show v

JDBC中的事务-Transaction

事务-Transaction 某些情况下我们希望对数据库的某一操作要么整体成功,要么整体失败,经典的例子就是支付宝提现.例如我们发起了支付宝到银行卡的100元提现申请,我们希望的结果是支付宝余额减少100元,银行卡余额增加100元,而不是支付宝的100元被扣除,而银行卡的100元却没收到.也就是说,要么100元从支付宝扣除的同时银行卡也会多出一百元,要么这次提现失败支付宝的100元还在,银行卡也没有收到钱.支付宝扣钱和银行卡收钱,这两件事要么都成功要么都失败. 事物的ACID特性: 满足ACID

redis源码分析之事务Transaction(下)

接着上一篇,这篇文章分析一下redis事务操作中multi,exec,discard三个核心命令. 原文地址:http://www.jianshu.com/p/e22615586595 看本篇文章前需要先对上面文章有所了解: redis源码分析之事务Transaction(上) 一.redis事务核心命令简介 redis事务操作核心命令: //用于开启事务 {"multi",multiCommand,1,"sF",0,NULL,0,0,0,0,0}, //用来执行事

SQL Server中事务transaction如果没写在try catch中,就算中间语句报错还是会提交

假如我们数据库中有两张表Person和Book Person表: CREATE TABLE [dbo].[Person]( [ID] [int] IDENTITY(1,1) NOT NULL, [Code] [nvarchar](50) NULL, [Name] [nvarchar](50) NULL, [CreateTime] [datetime] NULL, [UpdateTime] [datetime] NULL, CONSTRAINT [PK_Person] PRIMARY KEY CL

FireDAC 下的 Sqlite [7] - 备份、优化、事务(Transaction)/

用 TFDSQLiteBackup 控件, 两三行代码即可完成 Sqlite 数据库的备份. procedure TForm1.Button1Click(Sender: TObject); begin   {先初始化目标}   FDConnection1.DriverName := 'SQLite';   FDConnection1.Params.Add('Database=C:\Temp\FDDemo_Back.sdb'); //如果不指定这个路径, 就是备份到内存   FDConnectio

事务Transaction 那点事儿

Transaction 也就是所谓的事务了,通俗理解就是一件事情.从小,父母就教育我们,做事情要有始有终,不能半途而废. 事务也是这样,不能做一般就不做了,要么做完,要么就不做.也就是说,事务必须是一个不可分割的整体,就像我们在化学课里学到的原子,原子是构成物质的最小单位.于是,人们就归纳出事务的第一个特性:原子性(Atomicity).我靠,一点都不神秘嘛. 特别是在数据库领域,事务是一个非常重要的概念,除了原子性以外,它还有一个极其重要的特性,那就是:一致性(Consistency).也就是