590
社区成员
发帖
与我相关
我的任务
分享
CREATE PROCEDURE TEST
as
begin
set ansi_warnings on
-- exec sp_addlinkedserver 'aaa',' ','SQLOLEDB','192.168.10.252'
-- exec sp_addlinkedsrvlogin 'aaa','false',NULL,'sa',''
--查询
set xact_abort on
-- begin tran --
BEGIN DISTRIBUTED TRANSACTION --开始异步事务
select * from aaa.CYQT_SERVER.dbo.TEST
insert into aaa.CYQT_SERVER.dbo.TEST (A) values ('abcdefg') --添加远程表
-- insert into TEST2 (A) values ('abcdefg') --添加本地表
commit tran
end
GO
这是我本地的存储过程代码,不加事务就可以成功,加了事务就报如下错误:
服务器: 消息 7391,级别 16,状态 1,过程 TEST,行 12
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]
OLE DB 错误跟踪[OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a]。