我正在尝试运行一个大型脚本文件(将近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:错误:脚本错误。

感谢。

有帮助吗?

解决方案

sqlcmd -t {n}

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

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

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

其他提示

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

http://www.red-gate.com/MessageBoard/ viewtopic.phpΔT= 8109

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

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top