触发器返回结果集和/或以SET NOCOUNT OFF运行,而另一个未完成的结果集处于活动状态

Sam*_*Sam 17 c# sql-server merge-replication

我有2台服务器通过低速连接连接,我们正在运行带有Merge复制的SQL Server 2008.

在订阅者,有时在尝试插入新行时,我收到此错误:

触发器返回结果集和/或以SET NOCOUNT OFF运行,而另一个未完成的结果集处于活动状态.

  • 我的数据库没有任何触发器; 唯一的触发器是Merge复制创建的触发器
  • 此外,每当发生此错误时,它会自动回滚现有事务
  • 我正在使用DataTablesTableAdapters使用事务插入和更新数据库

我检查了什么:

  1. 数据库日志文件大小低于50Mb
  2. 检查了Zombie事务的源代码(因为我无法在开始时检索实际错误)
  3. 检查了两台服务器之间的连接,发现它很拥挤

问题:

  1. 如何避免这种行为以及为什么它首先发生?
  2. 为什么取消开放交易?

小智 0

我遇到了同样的问题并有解决方案。

问题是在该触发器中执行的带有结果集的存储过程。

看来,这个存储过程导致触发器也有一个结果集。