我讨厌存储过程,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高人有任何建议,在此万谢。