Liny_@NotePad

沉迷ACG中

不能在手动或分布事务方式下创建新的连接

YOYO posted @ 2011年7月06日 16:05 in 【数据库】 with tags MSSQL , 9613 阅读

数据库服务器:SQL Server 2005

这是在第N次测试的时候发生的问题。

之前正常运行的代码,在执行一个查询的存储过程时突然报了「不能在手动或分布事务方式下创建新的连接」异常。

因为很久没有动过那个部分,所以很奇怪,怎么突然就这样了呢。

当时正好有另一台服务器,于是在那台服务器上测试了,发现是正常的,就怀疑是否服务器参数设置的关系。

但是其他人的代码都是正常的啊?前辈提醒我看下set nocount那些是否一致,检查了也是一样的。

正在一筹莫展、继续搜索的时候,前辈找到原因了。 

原来那段代码是调用了多个存储过程的,在调用这个存储过程的前一个里面没有设置set nocount on,
于是轮到调用它的时候就报错了。

查查MSDN,set nocount on如果没设置的话,就会更新@@RowCount函数,返回影响的行数。

但是这和那个错误有什么关系呢 = =

按照这个错误信息查了一下,好像多在SELECT时发生,和Cursor有关。

但是具体好难理解啊,总之先mark。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter