视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
存储过程之联合事务
2020-11-09 07:47:16 责编:小采
文档


亲们!还记得前几篇关于存储过程的博客吧!接下来就让我们更深的了解和运用它即联合事务,让它充分发挥其优势。 首先我在这里简单介绍下事务: 数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作。 事务处理可以确保除非事务性单

亲们!还记得前几篇关于存储过程的博客吧!接下来就让我们更深的了解和运用它即联合事务,让它充分发挥其优势。

首先我在这里简单介绍下事务:

数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。 由于在前边介绍过事务,这里就不多说了。欢迎观看相关链接:

http://blog.csdn.net/liu_yujie2011com/article/details/9004816

接着分析下事务及存储过程在机房合作中的运用:在注册学生信息时要考虑到三张表:学生表,卡表,充值表。将新注册的信息插到这几个表中,这时问题出现了。是一张一张表的插呢?还是同时插?答案当然是同时插。但是问题又出现了,如果同时插入三条信息,有一条没成功怎么办?这时事务就排上用场了,如果在插入数据时出现错误则立即回滚并提示错误信息。那就让我们进入实践吧!

存储过程加事务的代码:

ALTER PROCEDURE [dbo].[PROC_StudentRegister]
@studentID varchar(20) ,@Name varchar(20),@sex varchar(20),@department varchar(20),@grade varchar(20),@Classroom varchar(20),@explain varchar(20),@userID varchar(20),
@recharge money,@rechargeDate date,@rechargeTime time(7),@isCheck varchar(20),
@cardID varchar(20),@Balance money,@registerDate date,@registerTime time(7),@cardFix varchar(20),@state varchar(20)
AS 
Begin
	--事务
	SET NoCOUNT ON;
	SET XACT_ABORT ON;
	begin Tran ok --开始一个事务
	
	--添加学生表
	insert into T_StudentInfo(studentID ,Name,sex,department,grade,Classroom,explain,userID) values (@studentID ,@Name,@sex,@department,@grade,@Classroom,@explain,@userID) 

	--添加卡表
	insert into T_CardInfo(cardID,Balance,registerDate,registerTime,cardFix,state,studentID,isCheck,userID) values(@cardID,@Balance,@registerDate,@registerTime,@cardFix,@state,@studentID,@isCheck,@userID) 
 
	--添加充值表
	insert into T_RechargeInfo(cardID,recharge,rechargeDate,rechargeTime,userID,isCheck) values(@cardID,@recharge,@rechargeDate,@rechargeTime,@userID,@isCheck) 
	
	if @@ERROR = 0 --如果数据库操作没错
	commit Tran ok--提交事务
	else --有错
	begin --如果出错
	rollback Tran --回滚事务
	end
End
   以上是在数据库中加事务,另一种是在代码中加,现在就不介绍了!在今后的学习中再慢慢研究和体会!

下载本文
显示全文
专题