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 来管理事物。