关于SQL Server里的两个问题(触发器和事务),请大侠们教教小弟!

关于SQL Server里的两个问题(触发器和事务),请大侠们教教小弟!,第1张

1触发器里面只有INSERTED 和 DELETED2个虚拟表。。没有UPDATED表。。

INSERTED表里面含有插入的数据或者更新的新数据。

DELETED表里面含有删除的数据或者更新的旧数据。

2create database语句是独立成为一个事务的语句。。不能在过程里面写create database语句

一个存储过程就是一个事务,

在大的事务里面可以套小的事务。

如果需要对执行的内容进行事务处理,

需要加上

begin tran

execute

commit

才可以。

事务是不会自己回滚的

需要你自己在代码里通过

begin try 和 end try捕获产生的错误

然后在begin catch 和 end catch 块中使用rollback语句让事务回滚

你可以简单地先写个小例子试一下,体会下rollback的用法

比如:

begin tran

update table2 set b=10,c=10 where a=1

rollback tran

就会发现数据没有被更新

然后再结合begin try end try begin catch end catch的用法

就能实现在事务执行过程中出错后回滚的功能

大概的形式就是这样:

begin tran

begin try

--做相关操作

--结束的时候如果没有错误则用commit提交事务

commit tran

end try

begin catch

--出现错误的时候会跳转到这里

--用rollback回滚事务

rollback tran

end catch

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 关于SQL Server里的两个问题(触发器和事务),请大侠们教教小弟!

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情