SQL Server 重温事务的解决办法

2022-11-12 09:47:13
内容摘要
这篇文章主要为大家详细介绍了SQL Server 重温事务的简单示例,具有一定的参考价值,可以用来参考一下。 对此感兴趣的朋友,看看idc笔记做的技术笔记!为什么使用事务  当对多个
文章正文

这篇文章主要为大家详细介绍了SQL Server 重温事务的简单示例,具有一定的参考价值,可以用来参考一下。

对此感兴趣的朋友,看看idc笔记做的技术笔记!

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

代码如下:

1
2
3
4
5
6
7
8
9
10
11
<code>
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
</code>
隐式设置事务

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<code>
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
</code>
显示事务以下语句不能使用,隐式事务可以

代码如下:

1
2
3
4
5
6
7
8
9
<code>
alter database;
backup;
create database;
drop database;
reconfigure;
restore;
update statistics;
</code>
显示事务可以嵌套使用

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<code>
--创建存储过程
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
</code>
事务嵌套,回滚外层事务时,如果嵌套内的事务已经回滚过则会有异常。此时需要使用事务保存点。如上代码。

注:关于SQL Server 重温事务的简单示例的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!