Como faço para definir o tempo limite de um servidor SQL script de dentro do script?
-
03-07-2019 - |
Pergunta
Eu tenho um grande arquivo de script (cerca de 300MB, e viabilizar maior no futuro) que eu estou tentando executar. Tem sido sugerido nos comentários da resposta do Gulzar para o meu sobre isso que I deve alterar o tempo limite script para 0 (sem limite de tempo).
Qual é a melhor maneira de definir o tempo limite de dentro do script? No momento eu tenho tudo isso no topo do arquivo de script na esperança de que um deles faz algo:
sp_configure 'remote login timeout', 600
go
sp_configure 'remote query timeout', 0
go
sp_configure 'query wait', 0
go
reconfigure with override
go
No entanto, ainda estou recebendo o mesmo resultado e eu não posso dizer se estou conseguindo definir o tempo limite porque a resposta do sqlcmd.exe é mensagem de erro útil menos do mundo:
Sqlcmd: Erro:. Erro de script
Graças.
Solução
sqlcmd -t {n}
Onde {n} deve ser um número entre 0 e 65535.
Note que a sua pergunta é um pouco enganador, uma vez o servidor tem nenhum conceito de um tempo limite e, portanto, não é possível definir o tempo de espera dentro de seu script.
Em seu contexto, o tempo limite é imposto pelo sqlcmd
Outras dicas
A sua solução - Adicionar GO cada 100 ou 150 linhas
http://www.red-gate.com/MessageBoard/ viewtopic.php? t = 8109
Eu acho que existe nenhum conceito de tempo limite dentro de um script SQL no SQL Server. Você tem que definir o tempo limite na chamando camada / cliente.
De acordo com a este artigo MSDN você poderia tentar aumentar o tempo limite desta maneira:
exec sp_configure 'remote query timeout', 0
go
reconfigure with override
go
"Use a opção tempo limite de consulta remoto para especificar por quanto tempo, em segundos, a operação remota pode tomar antes vezes Microsoft SQL Server fora. O padrão é 600, que permite uma espera de 10 minutos. Este valor aplica-se a uma conexão de saída iniciado pelo Database Engine como uma consulta remota. Este valor não tem efeito sobre consultas recebidas pelo Database Engine ".
P.S .: por 300 MB você quer dizer o arquivo resultante é de 300 MB? Eu não espero que o arquivo de script em si é de 300 MB. Isso seria um recorde mundial. ; -)