如何在脚本中设置SQL Server脚本的超时?
-
03-07-2019 - |
题
我正在尝试运行一个大型脚本文件(将近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
我认为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。这将是一项世界纪录。 ; - )
不隶属于 StackOverflow