本人经过百度查找并且自己进行测试得到问题原因:

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

问题就解决。

所以各位以后在使用事务时一定要注意避免这个问题的发生,希望对各位有所帮助!

原文链接

SQLServer出现 '其他会话正在使用事务的上下文' 的问题原因,什么是环回链接服务器?(转载)的更多相关文章

  1. SQLServer2005 提示 '其他会话正在使用事务的上下文'

    MSDN上看了一下说是sql server 2005不支持在分布式事务处理中存在指向本地的链接服务器(环回链接服务器) 这个是官方的回答 个人认为,应该是在事务中,使用了链接服务器访问进行跨库访问引起 ...

  2. c# 访问SQL Server 其他会话正在使用事务的上下文

    这个异常是我第二次遇到! 从网上查找资料后知道了是由于数据库链接字符串是远程链接造成的,去掉链接服务器地址就行了,换成普通的链接字符串就可以了

  3. SQLServer之创建链接服务器

    创建链接服务器注意事项 当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的DBLINK,通过DBLINNK数据库可以像访问本地数据库一样访问远程数据库表中的数据 ...

  4. 使用系统存储过程来监控SQLServer进程和会话具体解释

     承接上文,本文讲述怎样使用系统存储过程来监控系统. SQLServer相同也提供了一系列系统存储过程用于监控SQLServer,获取当前进程.会话.请求以及锁定的具体信息.本文将演示系统存储过程 ...

  5. SQLServer数据库中开启CDC导致事务日志空间被占满的原因

    SQLServer数据库中开启CDC导致事务日志空间被占满的原因 转载  2017-04-01   投稿:mrr    我要评论 这篇文章主要介绍了SQLServer数据库中开启CDC导致事务日志空间 ...

  6. 无法启动链接服务器"XXX DB Link"的 OLE DB 访问接口 "SQLNCLI11" 的嵌套事务。由于 XACT_ABORT 选项已设置为 OFF,因此必须使用嵌套事务。链接服务器"XXX DB Link"的 OLE DB 访问接口 "SQLNCLI11" 返回了消息"无法在此会话中启动更多的事务"。

    无法启动链接服务器"XXX DB Link"的 OLE DB 访问接口 "SQLNCLI11" 的嵌套事务.由于 XACT_ABORT 选项已设置为 OFF,因 ...

  7. Sqlserver通过链接服务器访问Oracle的那些事儿

    前言: 1.不经历风雨,怎能见彩虹. 2.充分利用BaiDu.google等搜索引擎查找资料并整合分析! 3.世上无难事只怕有心人! 本文由来:笔者在研究SQLSERVER链接服务器到oracle并使 ...

  8. 没有活动事务 链接服务器的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务

    在windows2003下执行分布式事务的时候出现如下情况. 一. 问题现象在执行分布式事务时,在sql server 2005下收到如下错误: 链接服务器"xxxxxxx"的 O ...

  9. 【转】Sqlserver通过链接服务器访问Oracle的那些事儿!

    原文:http://blog.sina.com.cn/s/blog_614b6f210100t80r.html 前言:1.不经历风雨,怎能见彩虹.2.充分利用BaiDu.google等搜索引擎查找资料 ...

随机推荐

  1. Java学习-020-Properties 判断是否存在对应的 key 项

    在日常的脚本编写过程中,通常会判断配置文件中是否存在对应的配置项,以判断是否执行相应的业务逻辑. 小二上码...若有不足之处,敬请大神指正,不胜感激! 判断是否存在 key 项(配置项)的方法源码如下 ...

  2. Asp.Net MVC 使用Entity Framework创建模型类

    先来说说LINQ to SQL和Entity Framework的区别: LINQ to SQL和Entity Framework都是一种包含LINQ功能的对象关系映射技术.他们之间的本质区别在于EF ...

  3. 网络应用发布到linux上的web服务器上页面上显示麻将牌式字符的问题

    什么是麻将牌式字符,就是中文显示为一个竖立长方形框框里面有四个数字或字母,请看下图中中文,日文和韩文的显示就知道了: 为什么会遇到这个问题? 系统不支持中文,日文和韩文字体. 如何解决: 安装中文字体 ...

  4. css中各种居中的奇技淫巧总结

    css中各种居中的奇技淫巧总结   第一种,在固定布局中比较常用的技巧设置container的margin:0 auto:   第二种(从布局中入手)   css .outer{ height:200 ...

  5. NavigationController popToViewController跳转之前任意ViewController方法

    NSArray *viewControllers = self.navigationController.viewControllers;A *viewController = [viewContro ...

  6. Change Tracking of SQLServer

    1.Enable the change tracking at the database level. ALTER DATABASE AdventureWorks2008 SET CHANGE_TRA ...

  7. linux sed命令参数及用法详解

    linux sed命令参数及用法详解 http://blog.csdn.net/namecyf/article/details/7336308 1. Sed简介 sed 是一种在线编辑器,它一次处理一 ...

  8. Power-BI免费版常用功能之同比、环比

    Power-BI免费版也可以实现同比.环比的功能.要实现同比.环比的功能,要在筛选行添加年份.月的筛选,并且指定某年份.月份.场景:如图想要在简表中显示上年收入.收入同比.收入同比差值.上月收入.收入 ...

  9. HtmlAgilityPack教程

    解析html教程(重点) http://www.cnblogs.com/kissdodog/archive/2013/02/28/2936950.html 完整的教程 http://www.cnblo ...

  10. C#通过存储过程进行查询

    一直不确定C#可以通过存储过程进行查询,今天才确定是可以的. 可以返回DataReader或者Dataset.