我有一个简单的SQL脚本,我从Visual Studio手动执行。它是一个数据生成脚本,所以我希望它需要几分钟才能运行。但是我收到以下错误。
超时已过期。超时期限 在完成之前已经过去了 操作或服务器不是 响应。
我不想更改任何全局服务器设置以便能够运行这个文件。是否有任何命令可以放在文件的顶部以增加该脚本/事务的超时?
答案 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值更改为更高的值。
答案 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覆盖了'查询执行'设置。