如何将超时参数传递给SQL数据库引擎

时间:2009-06-23 21:18:23

标签: sql-server sql-server-2005 tsql

我正在运行一个前两次超时并在第三次返回结果的查询。

如何告诉SQL Server等待查询完成而不是超时?

3 个答案:

答案 0 :(得分:5)

默认情况下,SqlCommand.CommandTimeout设置为30秒。您可以在执行查询之前分配更长的持续时间,或者在没有超时的情况下设置为0。 (如果问题涉及.Net编程)

答案 1 :(得分:1)

您还可以在连接字符串中设置连接范围 "Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=SSPI;Connection Timeout=30"

答案 2 :(得分:1)

超时是由客户端应用程序控制的,而不是服务器。这是客户端愿意等待服务器响应的时间。

无论您使用什么软件包访问数据库,都会在某处具有超时值。

例如,在带有ADODB的VBA中,您可以将超时设置为60秒,如下所示:

Dim cn As ADODB.Connection
Set cn = new ADODB.Connection
cn.CommandTimeout = 60 

正如Shane上面指出的那样,你也可以在连接字符串中设置它。

认为你可以将它设置为0,这样它就永远不会超时,但这不推荐,因为这意味着如果服务器挂起或你丢失了数据库连接,你的应用程序将永远等待。