新
新来的菜鸟
Unregistered / Unconfirmed
GUEST, unregistred user!
请大家帮帮忙看看我的存储过程,我的主要目的是想调用其他服务器的存储过程然后把里面的数据插入到我的临时表里! CREATE PROCEDURE yzl_yb as Create TABLE #yb( yb_fd char(30), yb_pluid char(30), yb_bm char(30), yb_name char(30), yb_gg char(10), yb_dw char(10), yb_xs int, yb_kc int ) exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','173.25.62.1' exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','50969336' exec sp_serveroption 'srv_lnk','rpc out','true' --这个允许调用链接服务器上的存储过程 insert into #yb ( yb_fd,yb_pluid,yb_bm,yb_name,yb_gg,yb_dw) exec srv_lnk.V7GMS.dbo.GetMooncakeStatus '14002921' --exec srv_lnk.V7GMS.dbo.GetMooncakeStatus '14002921' exec sp_droplinkedsrvlogin 'srv_lnk',null exec sp_dropserver 'srv_lnk' select * from #yb drop table #yb --COMMIT TRANSACTION GO 但执行完后就会提示 该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。 [OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ] OLE DB 错误跟踪[OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a]。 如果只是单纯的调用exec srv_lnk.V7GMS.dbo.GetMooncakeStatus '14002921' 就没问题 但如果 insert into #yb ( yb_fd,yb_pluid,yb_bm,yb_name,yb_gg,yb_dw) exec srv_lnk.V7GMS.dbo.GetMooncakeStatus '14002921' 就会提示该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。 [OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ] OLE DB 错误跟踪[OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a]。 这是为何呀,请各位大哥帮帮忙小弟谢谢了!