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


2.事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。

COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。

    ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有以完成的操作全部撤消,滚回到事务开始的状态。

3.事务的四大特性:

为了进一步理解事务的特性,用比较通俗易懂的例子来解释事务在实际使用中的处理。

A原子性:比如说在网上转帐从A账户往B账户转100元,需要执行两个操作A账户减少100元,B账户增加100元。这两个操作如果只执行了第一个操作,那么你是不会答应的,因为你损失了100元,而如果只执行了第二个操作,那么银行也不会答应。这两个操作要么都同时执行成功,要么都执行失败,否则一个成功,一个失败都是不合理的。在一个表格中如果两个用户发生了类似的金额增减的时候操作,就需要将这种数据操作放在事务中。因此将这两个操作放在一个事务中去执行,事务的原子性,保证了要么都执行,要么都不执行。

    B一直性:一致性的话,再举个例子,比如说你刷卡买电影票,步骤是这样的,首先营业员先给你打出一张票,然后你刷卡,拿电影票。这个时候,实际的电影票是资源,而数据库中的电影票是数据。营业员如果帮你打出一张票,这个时候,数据库中电影票实际上数目减一了,但是如果你刷卡失败了,实际的电影票资源并没有发生改变,这个时候执行回滚操作,恢复到打票之前的数据。这样保证了资源和数据的一致性。

    C隔离性:隔离性的话,就是两个事务之间的操作相互之间不会影响,即不会发生脏读、不可重复读和幻象。

    D持久性:持久性的话比较好理解,就是事务执行成功以后,数据将保存在数据库中不再发生改变。