首页 > 代码库 > SQLServer出现 '其他会话正在使用事务的上下文' 的问题原因,什么是环回链接服务器?(转载)
SQLServer出现 '其他会话正在使用事务的上下文' 的问题原因,什么是环回链接服务器?(转载)
本人经过百度查找并且自己进行测试得到问题原因:
MSDN上看了一下说是sql server 不支持在分布式事务处理中存在指向本地的链接服务器(环回链接服务器) 通过上面简单说明大家有可能没完全理解环回链接服务器的意思。下面直接来几段代码相信大家就明白了
1.打开本机SQL Server Management Studio工具,连接一个数据库服务器
这里使用本机数据库服务器。
2.在本机数据库服务器上建一个链接服务器连接的地址就是本机服务器,名称为 LS_Test。
3.假设本地数据库服务器下有
数据库A
数据库B
数据库B中有dbo.Test表
4.在数据库A中创建如下存储过程
CREATE PROCEDURE [dbo].[PrPs_TestA]AS SET XACT_ABORT ONBEGIN TRAN EXEC LS_TEST.B.dbo.PrTestB COMMIT TRAN
5.在数据库B下创建如下存储过程
CREATE PROCEDURE [dbo].[PrTestB]@OV_ReturnMss VARCHAR(128) OUTPUTAS BEGIN SELECT * FROM LS_TEST.B.dbo.TestEND
6.在数据库A下执行存储过程dbo.PrTestA
exec dbo.PrTestA
就会出现如下错误:
其他会话正在使用事务的上下文。
相信大家已经明白什么叫做环回链接服务器,当我们把数据库B中的存储过程dbo.PrTestB的链接服务器访问改成跨库访问,如:
SELECT * FROM B.dbo.Test
问题就解决。
所以各位以后在使用事务时一定要注意避免这个问题的发生,希望对各位有所帮助!
原文链接
SQLServer出现 '其他会话正在使用事务的上下文' 的问题原因,什么是环回链接服务器?(转载)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。