首页 新闻 会员 周边 捐助

数据库分布式事务报7391错,紧急求助各位高手

0
悬赏园豆:50 [已关闭问题]

if not exists(select * from sys.sysservers where srvname='server_lnk')
begin
 exec sp_addlinkedserver   'server_lnk', '', 'SQLOLEDB', '192.168.1.15'  
 exec sp_addlinkedsrvlogin 'server_lnk', 'false ',null, 'sa', '123'
end

set xact_abort ON
BEGIN DISTRIBUTED TRANSACTION tans1   --开始分布式事务
 INSERT INTO dbo.stuscore([name])VALUES('abc')
 if(@@error<>0)
  ROLLBACK TRANSACTION tans1
 INSERT INTO server_lnk.Test.dbo.t1([name])
 VALUES('12345678901234567890123456789012345678901234567890')
 select @@error
 IF(@@error<>0)
  ROLLBACK TRANSACTION tans1
COMMIT TRANSACTION tans1
GO
--这个是没问题的,加上BEGIN DISTRIBUTED TRANSACTION就报错
select * from server_lnk.Test.dbo.t1

--错误信息
链接服务器"server_lnk"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "没有活动事务。"。
消息 7391,级别 16,状态 2,第 7 行
无法执行该操作,因为链接服务器 "server_lnk" 的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务。

龙刃的主页 龙刃 | 初学一级 | 园豆:150
提问于:2009-08-27 16:07
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册