我想将触发器中的数据从我的本地mssql 2005服务器插入远程mssql 2005服务器。
我有一张桌子西尔;我创建了一个触发器(AFTER INSERT)来检测是否有东西被添加到它。 我想将该数据复制到另一个远程服务器的同一个表中。 我的问题是,如果我只是在普通查询中执行insert语句(非常简单,仅使用静态数据进行测试),它就成功了;我甚至可以从远程服务器中进行选择。 但是,当我将这个简单的插入放入触发器块时:“无法开始分布式事务”CREATE TRIGGER T_SyrInserted
ON [DBProba].[dbo].[Syr]
AFTER INSERT
AS BEGIN
INSERT INTO [RemoteSrv].[DBProba].[dbo].[Syr] (SyrId, SyrNm ) VALUES (15000734, 'valami')
END
解决:
答案 0 :(得分:0)
在您的情况下,update语句打开一个本地事务,而insert语句也会打开一个与远程服务器的事务,这将是分布式事务的情况。
为了完成这项工作,您必须启动DTC http://support.microsoft.com/kb/817064
要了解有关分布式事务的更多信息,您可以查看链接http://msdn.microsoft.com/en-us/library/windows/desktop/ms681205%28v=vs.85%29.aspx