当前位置: 代码迷 >> Sql Server >> 紧急 调用远程存储过程无限期执行有关问题
  详细解决方案

紧急 调用远程存储过程无限期执行有关问题

热度:357   发布时间:2016-04-27 10:59:04.0
紧急求救 调用远程存储过程无限期执行问题
问题是这样的,我在服务器A上调用服务器B上的存储过程,那个存储过程里会去服务器C抓取数据,B上的存储过程很简单 只从服务器C返回一条2个字段的数据,然后我在A上调用时完全没问题,执行时间小于1秒。但是当我在A上建立个临时表,想把B拿到的结果集插入到A去 就会出现无限期执行的情况。各位大虾有谁碰到过这种问题吗?

A的地址为192.168.200.10
B的地址为192.168.210.10
C的地址为192.168.110.10
B上的存储过程
CREATE PROCEDURE TTS.[dbo].[GETINFO]
@CD varchar(6)
AS
BEGIN
SELECT usercd,username FROM oPENDATASOURCE('SQLOLEDB','DATA SOURCE=192.168.110.10;USER ID=sa;password=XXXXX').TESTDB.dbo.users where [email protected]
END

A上调用无限期执行的语句
create table #tmpTABLE
(
cd varchar(10) null,
name varchar(100) null
)
insert into #tmpTABLE (cd, name) 
exec opendatasource('SQLOLEDB','data source=192.168.210.10;user id=sa;password=yyyyy').TTS.dbo.GETINFO 'dsxin'


------解决方案--------------------
检查是否存在阻塞甚至死锁。要是开启了跨服务器连接,不需要用exec opendatasource('SQLOLEDB','data source=192.168.210.10;user id=sa;password=yyyyy').TTS.dbo.GETINFO 'dsxin'这样吧?
------解决方案--------------------
SQL code
--先建立连接试试吧exec   sp_addlinkedserver     'srv_lnk','','SQLOLEDB','192.168.30.21'   exec   sp_addlinkedsrvlogin   'srv_lnk','false',null,'SA','key123'   exec   sp_serveroption   'srv_lnk','rpc out','true' --这个允许调用链接服务器上的存储过程   go      --调用存储过程示例   exec   srv_lnk.DBname.dbo.PROCname   go
  相关解决方案