您当前的位置: 首页 >  sql

[MSSQL]SQLServer之创建分布式事务

发布时间:2021-11-16 17:01:29 ,浏览量:0

分布式事务创建注意事项

指定一个由 Transact-SQL 分布式事务处理协调器 (MS DTC) 管理的 Microsoft 分布式事务的起点。

执行 BEGIN DISTRIBUTED TRANSACTION 语句的 SQL Server 数据库引擎的实例是事务创建者,并控制事务的完成。 当为会话发出后续 COMMIT TRANSACTION 或 ROLLBACK TRANSACTION 语句时,控制实例请求 MS DTC 在所涉及的所有实例间管理分布式事务的完成。

事务级别的快照隔离不支持分布式事务。

数据库引擎的远程实例登记到分布式事务中的主要方法是当已在分布式事务中登记的会话执行引用链接服务器的分布式查询时。

例如,如果在服务器 A 上发出 BEGIN DISTRIBUTED TRANSACTION,则该会话将调用服务器 B 上的一个存储过程和服务器 C 上的另一个存储过程。 服务器 C 上的存储过程执行针对服务器 D 的分布式查询,这样该分布式事务将涉及所有四台计算机。 服务器 A 上的 数据库引擎的实例是该事务的初始控制实例。

Transact-SQL 分布式事务涉及的会话并不获取可以传递给另一个会话的事务对象,从而也不能将其显式登记在分布式事务中。 远程服务器登记到事务中的唯一方法是成为分布式查询或远程存储过程调用的目标。

在本地事务中执行分布式查询时,如果目标 OLE DB 数据源支持 ITransactionLocal,则该事务被自动提升为分布式事务。 如果目标 OLE DB 数据源不支持 ITransactionLocal,则只允许在分布式查询中执行只读操作。

已在分布式事务中登记的会话执行一个引用远程服务器的远程存储过程调用。

sp_configure remote proc trans 选项控制对本地事务中的远程存储过程调用是否自动使本地事务被提升为由 MS DTC 管理的分布式事务。 连接级别 SET 选项 REMOTE_PROC_

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    108697博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0567s