06事务、视图和索引

目标:
使用事务保证操作数据的完整性
掌握如何创建并使用视图
掌握如何创建并使用索引
关键单词
transaction 事务,交易
atomicity 原子性
consistency 一致性
isolation 隔离性
durability 永久性
commit 承诺
rollback 回滚
view 视图
index 索引
事务定义:
事务是作为单个逻辑工作单元执行的一系列操作。就是把一系列的操作作为一个整体,操作都成功则整体成功,只要一个操作失败,整体失败。
事务特点:
四个特点:简称(ACID)
  1. 原子性(Atomicity) 事务的元素不可再分。
  2. 一致性(Consistency) 当事务完成时,数据必须处于一致状态。
  3. 隔离性(Isolation) 事务彼此隔离。
  4. 持久性(Durability) 事务处理的结果都是永久的。
执行事务的语法:
begin transaction --开始事务
commit transaction --提交事务
rollback transaction --回滚(撤销)事务
事务分类:
显示事务:用begin transaction明确指定事务的开始
隐式事务:通过设置set implicit_transcations on 语句,将隐式事务模式打开,不再需要描述每个事务的开始,只需要提交或回滚每个事务。
自动提交事务:sql server默认模式:单独的T-SQL语句就是一个事务。

事务应用示例:

use MySchool
go

set nocount on --不显示受影响的行数信息
print '查看转账事务前得余额'
select * from bank
go
/*--开始事务(指定事务从此处开始,后续的T-SQL语句都是一个整体)--*/
begin tran
/*--定义变量,用于累计事务执行过程中的错误--*/
declare @errorSum int
SET @errorSum=0
/*--转账:张三的账户少1000,李四的账户增加1000-*/
update bank set currentMoney -= 1000
where customerName='张三'
set @errorSum += @@ERROR  --累计是否有错误
update bank set currentMoney += 1000
where customerName='李四'
set @errorSum += @@ERROR  --累计是否有错误

print '查看转账事务过程中的余额'

select * from bank

/*--根据是否有错误,确定事务是提交还是撤销--*/
if @errorSum<>0
    begin
      print '交易失败,回滚事务'
      rollback tran
    end
else
    begin
       print '交易成功,提交事务,写入硬盘,永久地保存'
       commit tran
    end
go

print '查看转账事务后的余额'

select * from bank

go


你可能感兴趣的:(SQL,Server)