我有两台服务器,第一台使用SQL Server 2005,第二台使用SQL Server 2000.我想将数据从2005插入到2000,我希望做到不同步(没有分布式事务,因为使用“保存事务”)。在SQL Server 2000上插入数据的SQL Server Service Broker
将信息插入到2000服务器的表中之后,会触发一些替代触发器来处理此信息。
在这种情况下,我决定使用Service Broker。所以我有一个存储过程将信息从一台服务器插入到另一台服务器,并且完美地工作。
但是,当我从目标队列过程消息过程调用此过程失败,我不知道为什么!我知道它的工作原理是因为当我使用相同的结构(队列&存储过程)在一台SQL 2005服务器上将一个数据库复制到另一个数据库时。
因此,它只能在机器之间失败,任何人都知道为什么或者如何获得有关失败原因的更多信息?或者如何插入数据异步(我不能使用SQL代理,因为我想更频繁地插入信息超过1分钟)。
@Remus:我不使用显式事务(分发或不分发),甚至不使用WAITFOR(接收)。我只是使用插入到链接的服务器,但也许有一个隐式的分布式事务。我会尝试!! – Alex 2009-11-30 19:59:31
插入到链接服务器是一个分布式事务。由于WAITFOR在内部创建保存点,因此与分布式事务处理器不兼容,因此插入到链接的服务器上。 – 2009-11-30 20:08:00