--事务
--1.打开一个事务
begin transaction
declare @sum int =0
update Student set StuName = '王振宇' where StuID = '1651030201'
set @sum = @sum + @@ERROR
update Student set StuName = '刘浩' where StuID = '1651030202'
set @sum = @sum + @@ERROR
--只要有任何一条SQL语句执行出错,最后的@SUM就不是0
if @sum<>0
begin
--表示程序执行出错了
--回滚
rollback
end
else
begin
--如果没有出错,则提交该事务
commit
end
--自动提交事务
--当执行一条SQL语句的时候,数据库自动打开一个事务,当语句执行成功,
--数据库自动提交事务,执行失败,数据库自动回滚事务
--隐式事务,每次执行一条sql语句时,数据库自动帮我们打开一个事务
--但是需要我们手动提交,或者回滚事务
SET IMPLICIT_TRANSACTIONS { ON | OFF }隐式事务
--打开隐式事务
SET IMPLICIT_TRANSACTIONS ON
SELECT * FROM Student
COMMIT
--不打开隐式事务
SET IMPLICIT_TRANSACTIONS ON
--显示事务:需要手动打开事务,手动提交或者回滚事务
begin tran
--………………
commit tran
select * from Student