1.事务分类:(1)显式事物:begin     transaction

                                                  commit    transaction

                                                  rollback     transaction

 

                    (2)隐式事物:set    implicit_transaction    on(打开隐式事物)

                                                  commit      transaction

                                                  rollback     transaction

 

                     (3)自动提交事物:每一条T-SQL语句都是一个自动提交事务

2.创建事物的原则:(1)事物尽可能的简短

                                    (2)在事物中访问的数据量要尽量最少

                                    (3)在浏览数据时尽量不要打开事物

                                     (4)在事务处理期间尽量不要请求用户输入

 

3.使用事物的注意事项:(1)每个操作之后,都要检查@@error或@@rowcount的值

                                            (2)每个事物结束以后,紧跟在事物之后的T-SQL代码还可以继续执行,但是出错后不能再回滚事物了。

                                            (3)已经提交完毕的事物会将数据正式写入数据库

                                            (4)当一个事物正在执行时,若发生意外断电或其他的事件,则在下次重启系统时,该事物会自动回滚。

                                            (5)在事物里发生错误使的事物无法执行下去,事物也会自动回滚。

                                            (6)无法回滚的语句不能再事物中使用。

                                                           例如:create   database (创建数据库)、alter    database(修改数据库)、drop      database (删除数据库)。

 

4.事物的隔离级别:(1) read    uncommitted:不隔离数据

                                    (2)read     committed :不允许读取没有提交的数据

                                    (3)repeatable  read:在事物中锁定所读取的数据不让别人修改和删除(保证每次读取的数据都是一致的)

                                    (4)snapshot:快照隔离,可以为读取数据的事物提供所需数据的一个已提交的版本,因此写入数据的事物阻塞不会读取数据的事物。

                                    (5)serializable:将事物说要用到的数据表全部锁定,不允许其他事物添加,修改和删除数据。

 

 

5.事物的属性:(1)原子性:事物是一个完整的操作,事物的各个元素是不可分割的。

                           (2)一致性:事物完成时,必须使所用的数据保持一致的状态。

                           (3)隔离性:对数据进行修改的所有并发事物是彼此隔离的。

                           (4)持久性:在事物完成后,其操作结果对于系统的影响应该是永久性的。

 

6.T-DQL 中用begin    transaction ,commit       transaction ,rollback       transaction 来管理事物。