有数据库服务器A、B, 已在A中创建B为链接服务器
在A能直接执行B中的存储过程 Bproc1,该存储过程返回一个查询结果集
即exec Bproc1 能成功执行,返回结果集但在A中执行以下语句时, 报错 “其他会话正在使用事务的上下文”
creat table #Atb1()
insert into #Atb1 (exec Bpoc1)
如何解决这个问题?
#Atb1的字段与 Bproc1结果集的字段是匹配的。
在A能直接执行B中的存储过程 Bproc1,该存储过程返回一个查询结果集
即exec Bproc1 能成功执行,返回结果集但在A中执行以下语句时, 报错 “其他会话正在使用事务的上下文”
creat table #Atb1()
insert into #Atb1 (exec Bpoc1)
如何解决这个问题?
#Atb1的字段与 Bproc1结果集的字段是匹配的。
GO
insert into #Atb1 exec Bpoc1 参数
其原因是由于计算机名和sql server 2005的servername不一致所致。
解决方法:
先执行
select @@servername
查看数据库中的servername
然后执行:
sp_dropserver ’old_name’
go
sp_addserver ’new_name’, local
其中old_name为select @@servername语句的结果,new_name为主机名
GO
insert into B..#Atb1 exec A..Bpoc1 参数指定服务器名