关于SQL数据库的事务处理

关于SQL数据库的事务处理,第1张

如果只对一个表 *** 作,可以采用adLockBatchOptimistic模式,即:

rsopen sql语句,连接,adOpenKeyset,adLockBatchOptimistic

更新的时候不需要事务处理,而是:

do while not rseof

rsedit

rsfields()value=

rsupdate

rsmovenext

loop

rsupdatebatch

SqlConnection myConnection = new SqlConnection("Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;");

myConnectionOpen();

SqlTransaction myTrans = myConnectionginTransaction(); //使用New新生成一个事务

SqlCommand myCommand = new SqlCommand();

myCommandTransaction = myTrans;

try

{

myCommandCommandText = "Update Address set location='23 rain street' where userid='0001'";

myCommandExecuteNonQuery();

myTransCommit();

ConsoleWriteLine("Record is udated");

}

catch(Exception e)

{

myTransRollback();

ConsoleWriteLine(eToString());

ConsoleWriteLine("Sorry, Record can not be updated");

}

finally

{

myConnectionClose();

}

设想网上购物的一次交易,其付款过程至少包括以下几步数据库 *** 作:

一、更新客户所购商品的库存信息

二、保存客户付款信息--可能包括与银行系统的交互

三、生成订单并且保存到数据库中

四、更新用户相关信息,例如购物数量等等

正常的情况下,这些 *** 作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。但是,如果在这一系列过程中任何一个环节出了差错,例如在更新商品库存信息时发生异常、该顾客银行帐户存款不足等,都将导致交易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变,比如最后一步更新用户信息时失败而导致交易失败,那么必须保证这笔失败的交易不影响数据库的状态--库存信息没有被更新、用户也没有付款,订单也没有生成。否则,数据库的信息将会一片混乱而不可预测。

数据库事务正是用来保证这种情况下交易的平稳性和可预测性的技术。

ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。

当数据库需要处理 *** 作量大、复杂度高的数据的时候需要用到事务。用事务是为了保证数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。

一个数据库事务通常包含了一个序列的对数据库的读/写 *** 作。它的存在包含有以下两个目的:

1、为数据库 *** 作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。

2、当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的 *** 作互相干扰。

当事务被提交给了数据库管理系统,则数据库管理系统需要确保该事务中的所有 *** 作都成功完成且其结果被永久保存在数据库中,如果事务中有的 *** 作没有成功完成,则事务中的所有 *** 作都需要被回滚,回到事务执行前的状态;同时,该事务对数据库或者其他事务的执行无影响,所有的事务都好像在独立的运行。

扩展资料:

数据库事务ACID性质:

1、原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的 *** 作要么全部被执行,要么都不执行。

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

3、隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。

4、持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中。

参考资料来源:

百度百科-数据库事务

百度百科-数据库

以上就是关于关于SQL数据库的事务处理全部的内容,包括:关于SQL数据库的事务处理、数据库事务 *** 作具体怎么 *** 作、数据库事务的 *** 作流程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9828079.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存