触发器在LInked Server上不起作用。 两台服务器都是SQL Server 2005

我有一台服务器连接到另一台服务器。 我可以从链接服务器访问logging,也可以使用INSERT语句插入logging

INSERT INTO [LINKED-SERVER-IP].MyDb.dbo.Customer (CustomerId, CustomerName) SELECT CustomerId, CustomerName FROM MyCustomers WHERE CustomerId = 5 

上面的查询工作正常,并插入logging,但是当我在触发器中使用此查询时,我得到以下错误。

链接服务器“Linked-Server-IP”的OLE DB提供程序“SQLNCLI”返回消息“伙伴事务pipe理器已禁用其对远程/networking事务的支持”。 发生了一些错误。 消息3616,级别16,状态1,行1事务触发注定。 批次已被中止。

谢谢。

触发器中的代码在与insert / update / delete语句相同的隐式事务中运行。 因此,它试图在两台服务器之间共享事务,默认情况下这是不允许的。

你有足够的特权来改变设置吗? 如果没有,那么你可以考虑其他选项,例如插入本地表并复制数据,或使用Service Broker来获得另一个进程来执行远程插入。