关于sql server:连接字符串中未接受超时

关于sql server:连接字符串中未接受超时

Timeout not being honoured in connection string

我有一个要运行的长时间运行的SQL语句,无论我在连接字符串的" timeout ="子句中输入什么内容,它似乎总是在30秒后结束。

我只是使用SqlHelper.ExecuteNonQuery()执行它,并让它负责打开连接等。

还有其他事情可能会覆盖我的超时,或导致sql server忽略它吗? 我已经在查询上运行了事件探查器,并且在Management Studio和代码中运行时,跟踪没有任何不同。

Management Studio大约在一分钟内即可完成查询,但是即使将超时设置为300或30000,我的代码在30秒后仍会超时。


您正在使用什么来设置连接字符串中的超时? 来自内存的" ConnectionTimeout",仅影响实际连接到服务器所花费的时间。

每个单独的命令都有一个单独的" CommandTimeout",这就是您要查找的内容。 虽然不确定SqlHelper是如何实现的。


除了连接字符串超时外,尝试使用SQL命令的timeout属性。 下面是一个使用SqlCommand类的C#示例。 它的等效内容应适用于您所使用的内容。

1
2
3
SqlCommand command = new SqlCommand(sqlQuery, _Database.Connection);
command.CommandTimeout = 0;
int rows = command.ExecuteNonQuery();

推荐阅读