我在存储过程中有一个SQL Insert查询,用于将行插入到链接的服务器表中。

由于存储过程在父事务中被调用,因此该Insert语句尝试使用DTC将行插入到链接服务器中。

我想避免 DTC介入。

有没有什么办法可以让Insert SQL语句忽略事务范围呢(如提示)?

===============>>#1 票数:4 已采纳

我的建议是,您要将要插入的任何内容存储到临时表中,一旦该过程结束,就会运行跨服务器插入。 据我所知,一旦你在SProc执行中,就无法忽略你所处的事务。

相反,如果使用.NET 2.0的System.Transaction命名空间,则可以告知特定语句不参与任何父范围事务。 这将要求您在代码而不是存储过程中编写一些逻辑,但是可以工作。

这是一个相关的链接

祝你好运,艾伦。

===============>>#2 票数:0

尝试使用openquery来调用链接服务器查询/ sp而不是直接调用那对我有用

所以不要插入...选择*来自mylinkedserver.pubs.dbo.authors

例如DECLARE @TSQL varchar(8000),@ VAR char(2)SELECT @VAR ='CA'SELECT @TSQL ='SELECT * FROM OPENQUERY(MyLinkedServer,''SELECT * FROM pubs.dbo.authors WHERE state =''' ''+ @VAR +'''''''''

INSERT INTO ..... EXEC(@TSQL)

  ask by Gulzar Nazim translate from so

未解决问题?本站智能推荐:

1回复

不使用事务或不需要事务时,涉及链接服务器的查询会引发分布式事务错误

我有一个多线程调度程序进程(.NET),该进程调用一个存储过程,该存储过程需要从链接服务器中提取数据并最终将数据插入本地表中。 我没有明确使用任何事务-我不担心进程失败,因为我可以重新运行。 此外,我想避免分布式事务(MSDTC)的复杂性。 我遇到的是,在大多数情况下,通过.NET进程
1回复

链接服务器:“没有事务处于活动状态。”和“无法开始分布式事务”

我的本地计算机上有一个CRM软件。 在该软件的SQL DB中,我添加了一个链接服务器(带有测试数据库的测试网站:Windows Small Business Server 2011)。 链接服务器设置为 我创建了一个触发器,以便在通过CRM软件更新公司时,它会启动一个存储过程,例如:
4回复

链接服务器表上的INNER JOIN比子查询慢得多

我遇到了这种奇怪的情况,我想我会把它扔到人群中找出原因。 我有一个查询加入链接服务器上的表: 这个查询是永远在说话(从来没有发现实际的运行时间),那时我注意到B没有索引,所以我添加了它,但这并没有解决问题。 最后,出于绝望,我试过: 在我看来,这个版本的查询应该具有相同的
1回复

强制MSDTC孤立SQLServer分布式事务

关闭我项目的基于WebSphere的JavaEE应用程序时,有时会在SQLServer 2005数据库中保留分布式事务。 这些将永久保留其锁,必须手动将其杀死。 在这篇非常好的文章中对它们进行了概述 。 本文讨论了事务协调器如何无法协调分布式事务参与者,因此将事务ID标记为-2。
1回复

在链接的SQL Server的事务中运行查询时出现MSDTC错误

我有一个链接的SQL服务器(两个服务器位于两个单独的洲,并通过VPN连接)。 运行以下sql时,它返回的数据没有问题: 在事务中运行它时,出现以下错误: 关于此特定错误消息,在线上有很多帖子(下面的链接),但是没有一个步骤可以为我解决问题,这时我很茫然(肯定是防火墙问题/端口被
1回复

两个MS SQL Server 2005之间的分布式事务

我需要在两个MS SQL Server 2005之间进行DISTRIBUTED TRANSACTION,它会丢弃一个错误,提示当前没有ADTIVE TRANSACTION或诸如此类。 DTCTESTER程序会删除一个错误,指出无法完成事务。 btw 135端口在防火墙上打开。 也许有人
1回复

如果其中一个数据库是只读的,是否会发生分布式事务升级?

我们正在执行从源数据库到目标数据库的导入过程。 我们需要经常以自动化方式运行这些导入。 源在与目标不同的服务器上。 两者都是MS SQL2008。我们使用Linq2SQL访问源,并使用自定义数据层访问目标。 我们从未修改过源数据库(尽管目前我们还没有将其恢复为只读状态)。 但是,现
1回复

为什么SQL Server中的分布式事务不支持快照隔离

问题在标题中。 我只想了解为什么不支持此功能? 为了澄清这一点,是MS Sql Server 2005/2008。
4回复

分布式事务完成。 在新事务或NULL事务中登记此会话

只是好奇是否有其他人有这个特殊的错误,知道如何解决它? 情景如下...... 我们有一个ASP.NET Web应用程序,使用在Windows Server 2008 IIS场上运行的Enterprise Library连接到SQL Server 2008群集后端。 MSDTC已开启
1回复

TSQL - 分布式或本地事务?

我在“Microsoft SQL Server 2012(SP3)”数据库中有一些SP。 这些SP可以从VB6应用程序和其他SP调用,也可以从.Net应用程序调用。 如果从其他SP或VB6应用程序调用SP,我可以回滚当前事务并在出现错误/无效输入时使用raiserror提供正确的错误消息