我讨厌存储过程,sql2005其他会话正在使用事务的上下文。

heguo 2010-07-21 08:53:06
INSERT INTO [#temp] exec [127.0.0.1].erpdb.dbo.sp_child @query_date

存储过程sp_parent中嵌套调用了sp_child子过程,这一句原本在sql2000上免强能工作,昨天升级到sql2005,前期测试时,原以为像sql2000一样:
EXEC sp_addlinkedserver '127.0.0.1', N'SQL Server'
EXEC sp_addlinkedsrvlogin '127.0.0.1', 'false', NULL, 'sa', 'erp2000'
只要上线前注册一下连接服务器即可,所以也没在意。

昨天正式上线,却不料sql2005报"其他会话正在使用事务的上下文"的错误,尝试用
SELECT *
from
OPENQUERY(erpserver,'exec [erpserver].erpdb.dbo.sp_child ''2010.1.1''') as A
又提示:
无法处理对象 "exec [erpserver].hxerp.dbo.sp_child '2010.1.1'"。链接服务器 "erpserver" 的 OLE DB 访问接口 "SQLNCLI" 指示该对象没有列,或当前用户没有访问该对象的权限。

大概是因为sql2005支持分布式,所以不能循环引用连接服务器所致。
万急中,哪位mssql高人有任何建议,在此万谢。
...全文
273 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzs4401 2011-10-20
  • 打赏
  • 举报
回复
有办法解决吗
heguo 2010-07-26
  • 打赏
  • 举报
回复
INSERT INTO [#temp] exec [127.0.0.1].erpdb.dbo.sp_child @query_date
不link自己,不允许嵌套调用存储过程.
因为sp_child调用了另一个sp_child_child存储过程
dla001 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 heguo 的回复:]
rpc out 都是打开的,用这种方式调用会提示"其他会话正在使用事务的上下文".
因为我link的服务器是自身服务器,调用的数据库存储过程是自身数据库中的另一个存储过程.
[/Quote]

link自己做什么??
heguo 2010-07-22
  • 打赏
  • 举报
回复
rpc out 都是打开的,用这种方式调用会提示"其他会话正在使用事务的上下文".
因为我link的服务器是自身服务器,调用的数据库存储过程是自身数据库中的另一个存储过程.
永生天地 2010-07-21
  • 打赏
  • 举报
回复
  exec sp_serveroption 'srv_lnk','rpc out','true'  --这个允许调用链接服务器上的存储过程
exec srv_lnk.数据库名.dbo.P_Message_Insert
heguo 2010-07-21
  • 打赏
  • 举报
回复
我暂时想了个替代方案:
create procedure sp_child (@query_date datetime,@ischild int=0) as
....
...
if(@ischild=0)
begin
select * from #t_result
end
else
begin
--暂存为实体表t_result
IF OBJECT_ID(N'[dbo].[t_return]', 'U') IS NOT NULL
begin
DROP TABLE [dbo].[t_return];
end
select * into t_return from #t_proc_result
end

------主存储过程------
create procedure sp_parent (@query_date datetime) as
exec sp_child @query_date '2010.1.1',1
select * from t_return
--用一个实体表返回结果集,这样子貌似也能应付一下,但应该还是有正统方法.
--等待正解.....
heguo 2010-07-21
  • 打赏
  • 举报
回复
linkserver总是成功的,用了网上各种方法link都可以.
不知道你有没有link后调用的成功案例?
xiaoku 2010-07-21
  • 打赏
  • 举报
回复
你前后两个例子的 linkserver 不一样...

link server的时候有出现错误么?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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