一.事务
1.什么是事务
(1).在数据库的实际应用中,有时候要把包含有多个步骤的指令当作一个整体来运行。这个整体要么全部运行成功,要么全部运行失败,这就是事务
(2).事务是有若干条 T-SQL指令组成的作为单个逻辑工作单元执行的一系列操作,这些操作作为一个整体一起向系统提交,全部执行完成,要么全部撤销
(3).事务是一个不可分割的工作逻辑单元
2.事务的特性
(1).原子性:事务是一个完整的操作,各步操作是不可分的;要么执行,要么都不执行,不存在只完成一部分的情况
(2).一致性:当事务完成时,数据必须处于一致状态;在事务开始之前及时完成之后,数据存储中数据处于一致状态,处理期间可以不一致
(3).隔离性:对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的
(4).永久性:事务完成后,它对数据库的修改被永久保持,事务日志能够保持事务的永久性,即使出现系统故障也要一直保持
3.事务的模式
(1).显式事务:用户使用T-SQL明确定义开始和结束的事务
格式:begin / commit /rollback transaction
begin transaction 事务名 <select语句> if <commit transaction /*提交事务*/> else <rollback transaction/*回滚事务*/>
(2).自动提交事务:SQL Server默认事务方式,能够自动执行并能自动回滚的事务
方式:对数据进行删除 / 修改等操作是,如果出现错误,操作将会被自动取消
(3).隐式事务:当事务提交或回滚后,自动开始的事务
二.游标
1.什么是游标
游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制
2.为什么要用游标
有些应用程序,不需要对查询得到的整个数据集进行访问,而只需要其中的一行或好靓的几行数据,或者希望对其进行处理是,就需要考虑游标
3.游标实现的目标
(1).允许定位到结果集中的特定行
(2).从结果集的当前位置检索一行或多行数据
(3).支持对结果集中当前位置的行进行修改
4.游标的格式
(1).声明游标:declare <游标名> cursor [全局或局部] [forward only | scroll 滚动方式 ] for<查询语句>
(2).打开游标:open <游标名>
(3).检索记录:fetch <游标名> ; fetch first <游标名> :提取第一行 ; fetch next<游标名> :提取上一次的下一行;fetch prior<游标名> :提上一次的前一行;fetch last <游标名> :提取最后一行;fetch absolute n<游标名> :提取第n行 ;fetch relative
n<游标名> :提取上一次的第n行 ;
(4).关闭游标:close <游标名>
(5).释放游标:deallocate <游标名>