数据库三种事务

什么是事务 是不可分割的逻辑单元,由多个操作部分组成
select  GETDATE()--函数
1.自动提交事务
insert、update、delete都是自动提交事务
比如一个学生表和班级表有外键约束 只删掉班级表的数据是执行不了的
insert into Student
values('张三','男',20,'2020-3-16')
commit;一旦提交就持久化了,不能再回滚
rollback;
我们先执行insert再回滚报错
COMMIT TRANSACTION 请求没有对应的 BEGIN TRANSACTION
2.隐式事务
我们开启开启隐式事务
set implicit_transactions on--开启隐式事务、off关闭
 
先insert在回滚数据就没有了这样的数据叫脏数据,相当于缓存,需要手动持久化提交
3.显示事务
--开始事务
begin transaction

declare @errorNum int =0--定义存放错误的结果
update Student set age=Age+10  where ID=12
set @errorNum=@errorNum+@@ERROR--非零

update Student set age=Age-10  where ID=10
set @errorNum=@errorNum+@@ERROR--非零


if @errorNum<>0
begin
rollback transaction
end 
else
begin
commit transaction
end
模仿银行存钱,只要两条语句有一条执行失败就会回滚
原文地址:https://www.cnblogs.com/cg-ww/p/13097622.html