- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL SERVER事务处理?/wenanry/archive/2006/07/10/447157.aspx事务定义:事务是单个的工作单元。如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据更改均被清除。事务三种运行模式:自动提交事务每条单独的语句都是一个事务。显式事务每个事务均以?BEGIN TRANSACTION?语句显式开始,以?COMMIT?或?ROLLBACK?语句显式结束。隐性事务在前一个事务完成时新事务隐式启动,但每个事务仍以?COMMIT?或?ROLLBACK?语句显式完成。事务操作的语法:BEGIN TRANSACTIONBEGIN DISTRIBUTED TRANSACTIONCOMMIT TRANSACTIONCOMMIT WORKROLLBACK WORKSAVE TRANSACTIONBEGIN TRANSACTIONBEGIN TRANSACTION标记一个显式本地事务的起始点。BEGIN TRANSACTION将?@@TRANCOUNT?加?1。BEGIN TRANSACTION?代表一点,由连接引用的数据在该点是逻辑和物理上都一致的。如果遇上错误,在?BEGIN TRANSACTION?之后的所有数据改动都能进行回滚,以将数据返回到已知的一致状态?。每个事务继续执行直到它无误地完成并且用?COMMIT TRANSACTION?对数据库作永久的改动,或者遇上错误并且用?ROLLBACK TRANSACTION?语句擦除所有改动语法BEGIN TRAN [ SACTION ] [ transaction_name | @tran_name_variable [ WITH MARK [ description ] ] ]例子:BEGIN TRAN T1UPDATE table1 ...--nest transaction M2BEGIN TRAN M2 WITH MARKUPDATE table2 ...SELECT * from table1COMMIT TRAN M2UPDATE table3 ...COMMIT TRAN T1BEGIN DISTRIBUTED TRANSACTION指定一个由?Microsoft?分布式事务处理协调器?(MS DTC)?管理的?Transact-SQL?分布式事务的起始。语法BEGIN DISTRIBUTED TRAN [ SACTION ][ transaction_name | @tran_name_variable ]参数transaction_name是用户定义的事务名,用于跟踪?MS DTC?实用工具中的分布式事务。?transaction_name?必须符合标识符规则,但是仅使用头?32?个字符@tran_name_variable是用户定义的一个变量名,它含有一个事务名,该事务名用于跟踪?MS DTC?实用工具中的分布式事务。必须用?char、varchar、nchar?或?nvarchar?数据类型声明该变量。注释执行BEGIN DISTRIBUTED TRANSACTION?语句的服务器是事务创建人,并且控制事务的完成当连接发出后续?COMMIT TRANSACTION?或?ROLLBACK TRANSACTION?语句时,主控服务器请求?MS DTC?在所涉及的服务器间管理分布式事务的完成。有两个方法可将远程?SQL?服务器登记在一个分布式事务中:分布式事务中已登记的连接执行一个远程存储过程调用,该调用引用一个远程服务器。?分布式事务中已登记的连接执行一个分布式查询,该查询引用一个远程服务器。示例本例在本地和远程数据库上更新作者的姓。本地和远程数据库将同时提交或同时回滚本事务。说明?当前的SQL Server?上必须安装?MS DTC.USE pubsGOBEGIN DISTRIBUTED TRANSACTIONUPDATE authorsSET au_lname = McDonald WHERE au_id = 409-56-7008EXECUTE?link_Server_T.pubs.dbo.changeauth_lname 409-56-7008,McDonaldCOMMIT TRANGONote:如果需要连接远程DB,如果是linkServer?方式连接的话,一定要修该linkServer的?RPC?选项置为?True。SET XACT_ABORT指定当?Transact-SQL?语句产生运行时错误时,Microsoft? SQL Server??是否自动回滚当前事务。(?可以比较简单的理解,如果中间有任何一句SQL?出错,所有SQL全部回滚.特别适用于?
文档评论(0)