如何更改SQL Server中手动执行的查询的超时?

时间:2009-02-04 10:07:19

标签: sql-server visual-studio timeout

我有一个简单的SQL脚本,我从Visual Studio手动执行。它是一个数据生成脚本,所以我希望它需要几分钟才能运行。但是我收到以下错误。

  

超时已过期。超时期限   在完成之前已经过去了   操作或服务器不是   响应。

我不想更改任何全局服务器设置以便能够运行这个文件。是否有任何命令可以放在文件的顶部以增加该脚本/事务的超时?

7 个答案:

答案 0 :(得分:12)

如果您使用SQL Management Studio,则选项中有两个设置(我指的是SQL Server 2005中的Management Studio,我使用它):
(我的管理工作室是德语版,所以我希望我将这些名称正确翻译成英文)

您可以在“其他”下的菜单中找到 - > “选项”

在选项中,第一个在“查询执行”下,您可以在那里设置“执行超时”(我的已经为零)

第二个(我认为这就是你需要的)是“Designer”下的第一个选项,它说的是“覆盖表设计器更新的超时”,你可以选中一个框并在那里输入一个值。
前段时间,我遇到了类似于你的问题(在大表上运行ALTER TABLE时出现超时消息),我通过将此选项设置为更高的值来解决它。

答案 1 :(得分:5)

增加CommandTimeout属性将解决问题 即。

SqlCommandObject.CommandTimeout = 500000

答案 2 :(得分:4)

使用下面介绍的过程在Visual Studio中增加查询超时和连接超时值。 更改查询超时:

在Visual Studio IDE中,导航到“工具” - >选项 - >数据库工具 - >查询和查看设计师 您可以取消选中取消长时间运行查询选项,也可以将选项后取消的值更改为更高的值。 更改连接超时:

在Visual Studio IDE中,通过导航到View - > Server Explorer启用Server Explorer 在服务器资源管理器中,右键单击与部署CLR对象的SQL Server的连接,然后选择“修改连接”。 单击“修改连接”窗口上的“高级”按钮。 在Advanced Properties窗口中,将Initialization部分下的Connect Timeout值更改为更高的值。

http://support.microsoft.com/kb/2011805

答案 3 :(得分:2)

@christian回答对我不起作用(更改SQL Management Studio中的设置)。

Biswa的回答对我有用。我将包含代码以澄清

SqlCommand cmd = new SqlCommand("MyReport", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandTimeout = 60;  /* note default is 30 sec */

答案 4 :(得分:1)

SQL Server将在返回给用户之前无限期地等待。很可能有一个客户端超时属性集。例如,您可以设置timeout property for the ADO command object

干杯,安迪。

答案 5 :(得分:0)

没关系,我可以使用SQL Management Studio运行它。

答案 6 :(得分:0)

只是想澄清Microsoft SQL Server Management Studio 2005的具体步骤......'设计'的默认设置肯定需要调整,即使它在'查询执行'部分设置为'0',因为'Designer'vars覆盖了'查询执行'设置。

  1. 打开Microsoft SQL Server Management Studio 2005
  2. 工具>>选项
  3. 展开'设计师'
  4. 我发现将“事务超时”设置为120后,对于包含数百万条记录的表的更新工作正常。