自动事务: 这是 SQL Server 的默认事务管 理模式. 每个T-SQL语句在成功执行完成后, 都 被自动提交; 如果遇到错误, 则自动回滚该语句.
2 撰写事务程序
在 SQL Server 中应用程序主要通过指定事 务的启动和结束的时间来控制事务. 在一个事务 启动之后, 结束之前, 系统执行的所有 T-SQL 语句都是该事务的一部分.
访问分布式数据库也需要使用事务, 以保证 对数据的所有操作都完整、一致, 要么全部成功, 要么全部失败, 这种跨越了分布的多个数据库的 事务即为分布式事务.
以电子商务的购物程序为例. 某顾客使用信 用卡从网站上购买玫瑰花, 他可以登录某个销售 鲜花的站点, 在那里购买想要的鲜花并要求送货 给某朋友. 下面是整个流程.
3 使用事务的注意事项
在启动事务之后, 系统为了维护事务的ACID 属性, 必须耗费很多的资源. 例如, 当事务执行 过程中涉及到数据的修改时, SQL Server 就会自 动启动独占锁, 以防止任何其他事务读取该数据, 而这种锁定会一直持续到事务结束为止. 这期间 其他用户将不能访问这些数据, 所以在多用户系 统中, 使用事务处理程序时必须有意识地提高事 务的工作效率.
● 原子性: 事务必须是原子的工作, 数据要 么全部被修改, 要么全部不被修改.
● 一致性: 事务完成时, 全部的数据必须维 持一致的状态.
● 隔离性: 同时执行的事务所进行的修改, 必须与其他任何并行的事务所进行的修改隔离.
● 持久性: 事务完成之后, 其据库的全部 事务, 所以当系统因电源中断、软件失败、客户 端出现问题而取消事务时, 它可以作为回复数据 之用. 系统因故中断, 可以自动向前完成已提交 的事务, 也可用于恢复尚未提交的事务.