0

我们有两台服务器,一台在本地(windows server 2003),一台在godaddy(windows server 2008),在两台服务器中都安装了sql server 2005,并在两台服务器中创建了链接服务器。

我们在 Godaddy 服务器中为一个sampletbl表启用了触发器,每当我们尝试使用启用的触发器将数据从 godaddy 数据库插入到本地数据库时,我们就会面临以下错误。

链接服务器“211_TEST”的 OLE DB 提供程序“SQLNCLI”返回消息“没有事务处于活动状态。”。
消息 7391,级别 16,状态 2,过程 36to211,第 8 行
由于链接服务器“211_TEST”的 OLE DB 提供程序“SQLNCLI”无法开始分布式事务,因此无法执行操作。

触发代码如下:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[36to211] on [dbo].[SampleTbl]
FOR INSERT
as
Declare @a int;
Declare @b int;
Declare @c int;
select @a=TETS_DET,@b=TEST_DET2,@c=TEST_DET3 from SampleTbl
insert into [211_TEST].[MAPBULLION].[dbo].[TEST1]
(TETS_DET,TEST_DET2,TEST_DET3)
values
(@a,@b,@c)

这里 [211_TEST] 是链接服务器名称,MAPBULLION 是本地服务器中的数据库,TEST1 是本地服务器中的表名。

检查了所有的 MSDTC 设置,它们符合要求

请提供解决方案。

这是我们尝试执行的查询,以将数据从 Godaddy 服务器插入到本地服务器:

insert into sampletbl (TETS_DET, TEST_DET2, TEST_DET3)
VALUES ('5', '6', '7') 
4

1 回答 1

0

首先在谷歌上搜索“sql server 分布式事务链接服务器”

http://social.msdn.microsoft.com/Forums/sqlserver/en-US/523116d4-4c8e-43a8-abf4-e705ffaa68c8/distributed-transactions-fail-on-linked-server?forum=sqldatabaseengine

说它是一个已知问题......

于 2014-02-14T07:01:05.473 回答