加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server 重温事务的简单示例

发布时间:2020-12-12 07:41:46 所属栏目:MsSql教程 来源:网络整理
导读:感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! 为什么使用事务 当对多个表进行更新的时候,某条执行失败。为了保持数据的完整性,需要使用事务回滚。 显示设置事务 代码如下: begin try begin transaction insert into shiwu (asd) v

感兴趣的小伙伴,下面一起跟随编程之家 52php.cn的小编两巴掌来看看吧!

为什么使用事务
  当对多个表进行更新的时候,某条执行失败。为了保持数据的完整性,需要使用事务回滚。
显示设置事务

代码如下:

 
begin try 
begin transaction 
insert into shiwu (asd) values ('aasdasda'); 
commit transaction 
end try 
begin catch 
select ERROR_NUMBER() as errornumber 
rollback transaction 
end catch 

隐式设置事务

代码如下:

 
set implicit_transactions on; -- 启动隐式事务 
go 
begin try 
insert into shiwu (asd) values ('aasdasda'); 
insert into shiwu (asd) values ('aasdasda'); 
commit transaction; 
end try 
begin catch 
select ERROR_NUMBER() as errornumber 
rollback transaction; --回滚事务 
end catch 
set implicit_transactions off; --关闭隐式事务 
go 

显示事务以下语句不能使用,隐式事务可以

代码如下:

 
alter database; 
backup; 
create database; 
drop database; 
reconfigure; 
restore; 
update statistics; 

显示事务可以嵌套使用

代码如下:

 
--创建存储过程 
create procedure qiantaoProc 
@asd nchar(10) 
as 
begin 
begin try 
begin transaction innerTrans 
save transaction savepoint --创建事务保存点 
insert into shiwu (asd) values (@asd); 
commit transaction innerTrans 
end try 
begin catch 
rollback transaction savepoint --回滚到保存点 
commit transaction innerTrans 
end catch 
end 
go 
begin transaction outrans 
exec qiantaoProc 'asdasd'; 
rollback transaction outrans 

事务嵌套,回滚外层事务时,如果嵌套内的事务已经回滚过则会有异常。此时需要使用事务保存点。如上代码。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读