sql-事务
sql事务:
事务Tran(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。
通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性
Begin Transaction(Tran) --开始事务
Rollback Transaction(Tran) --回滚事务
Commit Transaction(Tran) --提交事务
简单写法:
Begin tran
update stud set Name='王五' where Name='张三' --正确语句
update YX set ID='王五' where ID='2' --错误语句(因为我这里ID字符类型是int类型)
rollback tran
因为计算机执行语句是从上到下开始执行,如果不加rollback tran,执行完第一个语句,开始执行第二个语句会报错,但是这时张三已经改成王五了,第二个语句却没有执行,却失了数据的一致性。
加了rollback tran 从上到下开始执行,执行完第一个语句,第二个语句报错时,是会回滚第一个语句修改的数据的(张三就还是张三),这样保持了数据的一致性。
存储过程写法:
create proc up --创建存储过程‘up’
as
begin try --异常捕捉
Begin Tran --开始事务
update stud set Name='王五' where Name='张三' --正确语句
update YX set ID='王五' where ID='2' --错误语句因为id是int类型
commit tran --提交事务
end try --结束捕捉
begin catch --异常处理
rollback tran --回滚事务
end catch --结束异常处理