一个存储过程问题,在线等待,急....(50)

  • 主题发起人 主题发起人 新来的菜鸟
  • 开始时间 开始时间

新来的菜鸟

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]。 这是为何呀,请各位大哥帮帮忙小弟谢谢了!
 
没人会吗?其实我插入到临时表里主要就是想对表的数据做筛选,但是直接exec 存储过程就没问题,但是插入零时表就会出错,能不能直接对存储过程进行筛选呢例如exec 存储过程 where hh='123'之类的,在线等待急...
 
没人会吗?在线等待急...
 
没明白你具体的意思 联系qq 287154931
 
MSSQL 存储程序 只在当前数据库执行吧。不能跨数据库执行的。
 
应该是过程里有隐含事物引起的,设置下过程的参数,让其不走事物
 
怎么不给我分呢 [:(][:(][:(]
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
I
回复
0
查看
948
import
I
I
回复
0
查看
627
import
I
后退
顶部