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 ON BEGIN TRAN EXEC LS_TEST.B.dbo.PrTestB COMMIT TRAN
5.在数据库B下创建如下存储过程
CREATE PROCEDURE [dbo].[PrTestB] @OV_ReturnMss VARCHAR(128) OUTPUT AS BEGIN SELECT * FROM LS_TEST.B.dbo.Test END
6.在数据库A下执行存储过程dbo.PrTestA
exec dbo.PrTestA
就会出现如下错误:
其他会话正在使用事务的上下文。
相信大家已经明白什么叫做环回链接服务器,当我们把数据库B中的存储过程dbo.PrTestB的链接服务器访问改成跨库访问,如:
SELECT * FROM B.dbo.Test
问题就解决。
所以各位以后在使用事务时一定要注意避免这个问题的发生,希望对各位有所帮助!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架