惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Blog of Author Tim Ferriss
Know Your Adversary
Know Your Adversary
P
Palo Alto Networks Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
K
Kaspersky official blog
L
LINUX DO - 热门话题
P
Proofpoint News Feed
P
Privacy & Cybersecurity Law Blog
Google DeepMind News
Google DeepMind News
Attack and Defense Labs
Attack and Defense Labs
Cisco Talos Blog
Cisco Talos Blog
AI
AI
L
LINUX DO - 最新话题
H
Heimdal Security Blog
Hacker News: Ask HN
Hacker News: Ask HN
Webroot Blog
Webroot Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The GitHub Blog
The GitHub Blog
I
Intezer
Blog — PlanetScale
Blog — PlanetScale
有赞技术团队
有赞技术团队
S
Securelist
博客园_首页
IT之家
IT之家
Schneier on Security
Schneier on Security
博客园 - 叶小钗
罗磊的独立博客
WordPress大学
WordPress大学
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
A
Arctic Wolf
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
W
WeLiveSecurity
The Register - Security
The Register - Security
D
DataBreaches.Net
S
Security @ Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
Recorded Future
Recorded Future
NISL@THU
NISL@THU
N
News and Events Feed by Topic
T
Tailwind CSS Blog
N
News and Events Feed by Topic
Cyberwarzone
Cyberwarzone
T
Tor Project blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com

博客园 - Feelwindy1

博文阅读密码验证 - 博客园 Windows Live Messenger Beta的邀请 浅谈存储过程与函数的区 Ajax程序设计入门 [转] NHibernate(转) 与女友的相处之道(转) 两点连接寻径算法 软件架构与设计模式 Enterprise JavaBeans导论[转] 设计模式:MVC模式 (java) 构架师之路 Eclipse基础--使用links方式安装Eclipse插件 debug与release - Feelwindy1 - 博客园 分布式数据库事务 Winform在设计上的一个小Bug 连连看源码调试问题 连连看精简测试版源码 阻塞和死锁 响应号召,发布连连看(C#+MDX9 精简测试版)
ADO.NET事务和Set Xact_Abort 以及MSDTC
Feelwindy1 · 2005-06-14 · via 博客园 - Feelwindy1

      ADO.NET中提供的SqlTransaction对象与我们在SP(存储过程)中显示的应用“Set Xact_Abort”语句来做事务处理是两种在不同层面对事务进行处理的方法。
      首先可以肯定的是,如果不在SP中显示的调用“Set Xact_Abort”语句来做事务处理,ADO.NET中提供的SqlTransaction对象能够正常的处理事务,比如遇到错误进行回滚操作等。它们两者之间是让开发人员根据自己的业务需求从不同的层面和角度来选择自己的事务处理方式。SqlTransaction对象是允许我们在数据访问层进行事务处理,而“Set Xact_Abort”语句是让我们在数据库中进行事务处理,可以说两者是提供不同的方法,但却实现了同样的功能。两者最关键的区别我认为就是“事务边界”的不同了,使用“Set Xact_Abort”是使用T-SQL中的“BEGIN TRANSACTION”和“COMMIT/ROLLBACK TRANSACTION”语句来确定事务边界的,而使用SqlTransaction对象则是通过手动指定其边界的。当然,两者的性能也是有不同的,在SP中使用“Set Xact_Abort”的效率要高于使用SqlTransaction对象,但是在事务处理的灵活性和自由度上却不如SqlTransaction对象。
当然,具体选用那种事务处理方法要视我们具体的需求而定。

关于MSDTC与这两种事务操作的关系。MSDTC是我们自己根据业务需求编写的一个COM+的服务,最主要的用途是来进行不同数据源访问的事务处理工作。这点是上述两种事务处理方法所无法做到的。也就是说,如果我们的事务来自于两种或以上不同的数据源,那么我们应该使用MSDTC来进行事务处理。并且,使用MSDTC进行事务处理,我们可以很方便的重用该COM+服务,这也是上述两种方法所不能胜任的。