10

我有一个正在尝试运行的大型脚本文件(近 300MB,未来可能会更大)。Gulzar 对我的问题的回答的评论中建议我应该将脚本超时更改为 0(无超时)。

从脚本中设置此超时的最佳方法是什么?目前,我将所有这些都放在脚本文件的顶部,希望其中一个能做一些事情:

sp_configure 'remote login timeout', 600
go
sp_configure 'remote query timeout', 0
go
sp_configure 'query wait', 0
go
reconfigure with override
go

但是,我仍然得到相同的结果,我不知道我是否成功设置了超时,因为来自 sqlcmd.exe 的响应是世界上最没有帮助的错误消息:

Sqlcmd:错误:脚本错误。

4

3 回答 3

7

您的解决方案 - 每 100 或 150 行添加 GO

http://www.red-gate.com/MessageBoard/viewtopic.php?t=8109

于 2009-03-20T16:16:21.783 回答
5
sqlcmd -t {n}

其中 {n} 必须是 0 到 65535 之间的数字。

请注意,您的问题有点误导,因为服务器没有超时的概念,因此您无法在脚本中设置超时。

在您的上下文中,超时由sqlcmd强制执行

于 2008-10-22T09:06:46.173 回答
4

我认为SQL Server 上的 SQL 脚本中没有超时的概念。您必须在调用层/客户端中设置超时。

根据这篇 MSDN 文章,您可以尝试以这种方式增加超时:

exec sp_configure 'remote query timeout', 0 
go 
reconfigure with override 
go 

“使用远程查询超时选项来指定远程操作在 Microsoft SQL Server 超时之前需要多长时间(以秒为单位)。默认值为 600,允许等待 10 分钟。此值适用于由数据库引擎作为远程查询。此值对数据库引擎接收的查询没有影响。"

PS:300 MB 你的意思是生成的文件是 300 MB?我不希望脚本文件本身是 300 MB。那将是一项世界纪录。;-)

于 2008-10-22T09:06:35.630 回答