insert into openrowset('sqloledb','ctec15';'sa';'','select * from northwind..employees算什么 类型 ?
sp_configure remote proc trans 选项控制对本地事务中的远程存储过程调用是否自动使本地事务被提升为由 MS DTC 管理的分布式事务。连接层 SET 选项 REMOTE_PROC_TRANSACTIONS 可用于替代由 sp_configure remote proc trans 建立的服务器默认值。启用本选项后,远程存储过程调用会使一个本地事务提升为分布式事务。创建 MS DTC 事务的连接成为该事务的创建人。COMMIT TRANSACTION 初始化一个 MS DTC 协调的提交。如果启用了 sp_configure remote proc trans 选项,本地事务中的远程存储过程调用将被自动保护,成为分布式事务的一部分,而不需要重写应用程序以便专门使用 BEGIN DISTRIBUTED TRANSACTION 以替代 BEGIN TRANSACTION。
可是 俺没有使用 sp_configure remote proc trans 还是不明白 什么时候使用 BEGIN DISTRIBUTED TRANSACTION , 什么时候使用 BEGIN TRANSACTION
BEGIN TRANSACTION 当你用分布式查询时,实际上也就是启动了分布式事务。这是显式事务的自动转化。
BEGIN TRANSACTION 启动一个本地事务。如果在事务提交或回滚之前执行了如下操作,本地事务将升级到分布式事务: 1。 执行了一个 INSERT、DELETE 或 UPDATE 语句,该语句引用了连接的服务器上的一个远程表。如果用于访问连接服务器的 OLE DB 提供程序不支持 ItransactionJoin 接口,该 INSERT、UPDATE 或 DELETE 语句则会失败。 2。 当启用了 REMOTE_PROC_TRANSACTIONS 选项时,将调用远程存储过程。
set xact_abort on
begin tran
insert into openrowset('sqloledb','ctec15';'sa';'','select * from northwind..employees算什么 类型 ?
什么时候使用 BEGIN TRANSACTION
当你用分布式查询时,实际上也就是启动了分布式事务。这是显式事务的自动转化。
1。
执行了一个 INSERT、DELETE 或 UPDATE 语句,该语句引用了连接的服务器上的一个远程表。如果用于访问连接服务器的 OLE DB 提供程序不支持 ItransactionJoin 接口,该 INSERT、UPDATE 或 DELETE 语句则会失败。
2。
当启用了 REMOTE_PROC_TRANSACTIONS 选项时,将调用远程存储过程。