连接字符串中没有超时的超时

时间:2008-08-26 06:06:07

标签: sql-server database timeout

我有一个长时间运行的SQL语句,我想运行,无论我在连接字符串的“timeout =”子句中放置什么,它似乎总是在30秒后结束。

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

还有什么东西可以覆盖我的超时,或导致sql server忽略它吗?我在查询中运行了分析器,当我在管理工作室中运行它时,跟踪看起来没什么不同,而不是我的代码。

管理工作室在大约一分钟内完成查询,但即使超时设置为300或30000,我的代码仍会在30秒后超时。

2 个答案:

答案 0 :(得分:39)

您在连接字符串中设置超时的用途是什么?来自“ConnectionTimeout”的内存,仅影响实际连接到服务器所需的时间。

每个单独的命令都有一个单独的“CommandTimeout”,这将是您正在寻找的。不知道SqlHelper是如何实现的。

答案 1 :(得分:14)

除连接字符串中的超时外,尝试使用SQL命令的timeout属性。下面是一个C#示例,使用SqlCommand类。它的等价物应该适用于你正在使用的东西。

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