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

lakerskobemvp 2014-11-19 04:38:24

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). 该步骤失败。

要疯了
...全文
189 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
舞台中央的我 2014-11-19
  • 打赏
  • 举报
回复
引用 3 楼 Tiger_Zhao 的回复:
from [DB55INS1].Subentry.dbo.T_Subentry_WeiXinTask nolock
跨服务器查询语句时,不能用with (nolock) 只能用nolock,同一个服务器查询时则with (nolock)和nolock都可以用
这个学习了 收藏下
Tiger_Zhao 2014-11-19
  • 打赏
  • 举报
回复
你直接试试就能验证,我也找不到资料说2008是否一样。
lakerskobemvp 2014-11-19
  • 打赏
  • 举报
回复
引用 3 楼 Tiger_Zhao 的回复:
from [DB55INS1].Subentry.dbo.T_Subentry_WeiXinTask nolock
跨服务器查询语句时,不能用with (nolock) 只能用nolock,同一个服务器查询时则with (nolock)和nolock都可以用
这个不是sql2005之前的版本吗,我的是2008也会有这个问题吗?
Tiger_Zhao 2014-11-19
  • 打赏
  • 举报
回复
from [DB55INS1].Subentry.dbo.T_Subentry_WeiXinTask nolock

跨服务器查询语句时,不能用with (nolock) 只能用nolock,同一个服务器查询时则with (nolock)和nolock都可以用
Yole 2014-11-19
  • 打赏
  • 举报
回复

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


实在不行就这么写呗~~
Yole 2014-11-19
  • 打赏
  • 举报
回复
链接服务器做了么?

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧