日期:2014-05-16  浏览次数:20404 次

事务在数据库以及.NET代码中的使用

 一直感觉事务是很神秘的东西。其实呢,感觉它神秘,主要原因是自己没有用过,等你真正用到它的时候,你就会发现,原来事务也不过如此。下面就跟大家分享一下事务在数据库以及.NET代码中的使用。


先说说什么是事务

数据库事务(简称: 事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。当事务被提交给了DBMS(数据库管理系统),则DBMS(数据库管理系统)需要确保该事务中的所有操作都成功完成且其结果被永久保存在数据库中,如果事务中有的操作没有成功完成,则事务中的所有操作都需要被回滚,回到事务执行前的状态;同时,该事务对数据库或者其他事务的执行无影响,所有的事务都好像在独立的运行。

事务的特性(ACID性质)


原子性(Atomic) 

事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行

一致性(Consistency) 

事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。

隔离性(Isolation) 

多个事务并发执行时,一个事务的执行不应影响其他事务的执行

持久性(Durability) 

已被提交的事务对数据库的修改应该永久保存在数据库中


下面介绍事务的具体使用

事务在数据库中的使用

BEGIN TRANSACTION
	--向Table1表中插入记录
	INSERT INTO Table1 VALUES('1','1')
	SET @Err1=@@ERROR
	
	--向Table2表插入记录
	INSERT INTO Table2 VALUES('1','1')
	SET @Err2=@@ERROR

	IF(@Err1=0 AND @Err2=0)
		COMMIT TRANSACTION	--事务提交
	ELSE
		ROLLBACK TRANSACTION	--事务回滚
@@ERROR完成 Transact-SQL 语句的执行时,如果语句执行成功,则 @@ERROR 设置为 0。若出现一个错误,则返回一条错误信息。@@ERROR 返回此错误信息代码,直到另一条 Transact-SQL 语句被执行。


事务在.NET代码中的使用

首先添加引用usingSystem.Transactions;

 (1)只在D层使用事务