Come posso impostare il timeout di uno script di SQL Server all'interno dello script?
-
03-07-2019 - |
Domanda
Ho un file di script di grandi dimensioni (quasi 300 MB, e fattibilmente più grande in futuro) che sto cercando di eseguire. È stato suggerito nei commenti della risposta di Gulzar alla mia che al riguardo che Dovrei modificare il timeout dello script su 0 (nessun timeout).
Qual è il modo migliore per impostare questo timeout dallo script? Al momento ho tutto questo in cima al file dello script nella speranza che uno di loro faccia qualcosa:
sp_configure 'remote login timeout', 600
go
sp_configure 'remote query timeout', 0
go
sp_configure 'query wait', 0
go
reconfigure with override
go
Tuttavia, sto ancora ottenendo lo stesso risultato e non posso dire se riesco a impostare il timeout perché la risposta di sqlcmd.exe è il messaggio di errore meno utile al mondo:
Sqlcmd: Errore: errore di scripting.
Grazie.
Soluzione
sqlcmd -t {n}
Dove {n} deve essere un numero compreso tra 0 e 65535.
Nota che la tua domanda è un po 'fuorviante poiché il server ha nessun concetto di timeout e pertanto non è possibile impostare il timeout nello script.
Nel tuo contesto il timeout viene applicato da sqlcmd
Altri suggerimenti
La tua soluzione: aggiungi GO ogni 100 o 150 linee
http://www.red-gate.com/MessageBoard/ viewtopic.php? t = 8109
Penso che non ci sia nessun concetto di timeout in uno script SQL su SQL Server. Devi impostare il timeout nel layer / client chiamante.
Secondo questo articolo MSDN tu potrebbe provare ad aumentare il timeout in questo modo:
exec sp_configure 'remote query timeout', 0
go
reconfigure with override
go
" Utilizza l'opzione di timeout della query remota per specificare quanto tempo, in secondi, può richiedere un'operazione remota prima del timeout di Microsoft SQL Server. L'impostazione predefinita è 600, che consente un'attesa di 10 minuti. Questo valore si applica a una connessione in uscita avviata dal Motore di database come query remota. Questo valore non ha alcun effetto sulle query ricevute dal Motore di database. & Quot;
P.S .: Per 300 MB intendi che il file risultante è 300 MB? Non spero che il file di script stesso sia di 300 MB. Sarebbe un record mondiale. ; -)