求帮忙看一个有关问题,搞不定了,要疯了

求帮忙看一个问题,搞不定了,要疯了

CREATE proc P_int800_WeiXinUpdateTaskLog                 
@i int output                  
AS                  
BEGIN        
   begin try                
   select  top(100)s_id,taskid,url,guid,click,reply                  
   into #t                  
   from [DB55INS1].Subentry.dbo.T_Subentry_WeiXinTask with(nolock)                  
   where s_id in (38,381) and status = 2        
   order by s_id asc              
   end try           
    begin catch                    
       insert into T_int800_WeiXinErrorid(errormsg,type)                    
       select left(error_message(),100),'log'                    
   end catch      
                
   select @i = COUNT(1) from #t                  
                   
   insert into T_int800_WeiXinTaskLog(s_id,taskid,url,guid,click,reply)                  
   select s_id,taskid,url,guid,click,reply from #t             
                           
     update  [DB55INS1].Subentry.dbo.T_Subentry_WeiXinTask           
     set status = 3                 
     where taskid in(select taskid from #t)                       
END 

作业执行报错:
无法从链接服务器 "DB55INS1" 的 OLE DB 访问接口 "SQLNCLI10" 获取行的数据。 
[SQLSTATE 42000] (错误 7346)  链接服务器"DB55INS1"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 
"行句柄引用了一个已被删除的行或被标识为删除的行。"。 
[SQLSTATE 01000] (错误 7412).  该步骤失败。

要疯了
------解决思路----------------------

select a.* 
FROM      OPENDATASOURCE(
'SQLOLEDB',
'Data Source=''ip'';User ID=''sa'';Password=''123456'''
).库.dbo.表a




实在不行就这么写呗~~
------解决思路----------------------
from [DB55INS1].Subentry.dbo.T_Subentry_WeiXinTask nolock

跨服务器查询语句时,不能用with (nolock) 只能用nolock,同一个服务器查询时则with (nolock)和nolock都可以用
------解决思路----------------------
你直接试试就能验证,我也找不到资料说2008是否一样。