日期:2014-05-18  浏览次数:20467 次

向大家请教个问题!献上200分
SQL code

      INSERT INTO openrowset('sqloledb','域名';'sa';'PWD','SELECT Number,Name,Sex,Birth_Date,Dept_Number,State,type,enable FROM Hz_ware.Dbo.Ware_Person')                                
      SELECT A.Person_Number,A.person_name,A.sex,B.BirthDate,B.bumen_bh,'起用','内网','1'                                   
      FROM inserted A left join employee B on A.person_number=B.gh   



把上面这段代码放入一个触发器中,报以下错
服务器: 消息 7391,级别 16,状态 1,行 3
该操作未能执行,因为 OLE DB 提供程序 'sqloledb' 无法启动分布式事务。
[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]
OLE DB 错误跟踪[OLE/DB Provider 'sqloledb' ITransactionJoin::JoinTransaction returned 0x8004d00a]。

注:在SQL2008数据库中,向外网另一服务器(安装的是sql2000)插入数据。在网上搜了下,把我的电脑(sql2000)和另一电脑(sql2000)正确配置后,测试了下
BEGIN TRAN
SELECT * FROM openrowset('sqloledb','ip';'sa';'pws','SELECT * FROM pubs..employee')
ROLLBACK TRAN

可以正确执行。SQL2008要怎么配置才行?难道也装成SQL2000才行,但SQL2008的数据库转成SQL2000又是麻烦!
能提供解决方案的,另开贴送100分。谢谢。


------解决方案--------------------
莫非大家都有压力,没人回答。

还没用过2008!
------解决方案--------------------
异机触发,本身就不是个很好的选择。
参考如下文章。

SQL Server 2005 创建跨服务器“触发器”

http://topic.csdn.net/u/20100610/17/66fadf93-b284-403b-af27-cae49fdbd840.html?94924
------解决方案--------------------
压力巨大,没用过触发器
------解决方案--------------------
http://support.microsoft.com/kb/816701/zh-cn

------解决方案--------------------
异地链接数据库。
------解决方案--------------------
2008没用过
试下在sql2000 的数据库上面写语句读取2008的然后插入2000可以吗
------解决方案--------------------
我是来膜拜楼主的
------解决方案--------------------
RPC呢?最好用DTCPing工具ping一下测试


------解决方案--------------------
学习了。。
------解决方案--------------------
mark~
------解决方案--------------------
SQL code

sp_configure 'show advanced options',1
reconfigure
sp_configure 'Ad Hoc Distributed Queries',1
reconfigure with override

------解决方案--------------------
我在2000和2005之间处理大量数据的导入和导出,
链接服务器和openrowset的执行效果是一样的。
两种方法都不支持远程过程调用
触发器中访问远程服务器和类似调用远程过程,所以会出错。



------解决方案--------------------
utility
------解决方案--------------------
路过…
------解决方案--------------------
异地链接数据库。
------解决方案--------------------
good
------解决方案--------------------
对OPENROWSET不熟,帮顶一下吧。感觉LZ数据库的设计有问题,不应该用触发器实现异机同步。一旦出了错就不好调。2008的话试试新功能更改跟踪吧。
------解决方案--------------------
路过,跨服务器~~没有碰过啊
------解决方案--------------------
我最近也在被这个问题困扰着……
------解决方案--------------------