一.什么是事务?
·在数据库的实际应用中,有时候要把包含有多个步骤的指令当作一个整体来运作.这个整体要么全部运作成功,要么全部运作失败,这就需要考虑事务
·事务(TRANSACTION)是由若干条T-SQL指令组成的作为i单个逻辑工作单元执行的一系列操作,这些操作作为一个整体一起向系统提交,全部执行完成,要么全部撤销
·事务是一个不可分割的工作逻辑单元
二.事务的特性
·事务必须具备一下四个属性,简称ACID属性
·原子性(Atomicity):事务是一个完整的操作,各步操作是不可分的(原子的);要么都执行,要么都不执行,不存在只完成一部分的情况
·一致性(Consistency):当事务完成时,数据必须处于一致状态;在事务开始之前即完成之后,数据存储中的数据处于一致状态,处理期间可以不一致
·隔离性(Lsolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务
·永久性(Durability):事务完成后,它对数据可得修改被永久保持,事务日志能狗保持事务的永久性,即使出现系统故障也将一直保持
三.事务的模式
·显式事务
·用户使用T-SQL明确定义开始和结束的事务
·BEGIN/COMMIT/ROLLBACK TRANSATION
·自动提交事务
·sql server 默认事务方式,能够自动执行并能自动回滚的事务
·对数据进行删除/修改等操作时.如果出现错误.操作将会被自动取消
·隐式事务
·当事务提交或回滚后,自动开始的事务
四.游标
· 有些应用程序,不需要对查询得到的整个记录集进行访问,而只需要其中的一行或者少量的几行数据,或者希望对其进行处理时,就需要考虑游标
· 游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制
·使用游标,可以实现一下目标
·允许定位到结果集中的特定行.
·从结果集的当前位置检索一行或多行数据
·支持对结果集中当前位置的行进行修改
五.SQL Server支持的游标
·T-SQL游标
·基于declare cursor语法,主要用于T-SQL脚本,存储过程和触发器中
·在服务器上实现,由客户端发往服务器的T-SQL指令进行管理
·APL游标
·基于应用程序接口,在服务器上实现
·客户端游标
·通过在客户端告诉缓存所有结果集行来实现