Как установить тайм-аут сценария SQL Server изнутри сценария?

StackOverflow https://stackoverflow.com/questions/224830

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня есть большой файл сценария (около 300 МБ, а в будущем, возможно, станет больше), который я пытаюсь запустить.Это было предложено в комментариях к ответу Гульзар на мой вопрос об этом что мне следует изменить тайм-аут сценария на 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

Другие советы

Ваше решение — добавляйте GO каждые 100 или 150 строк.

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

Я думаю, что есть нет понятия тайм-аута в сценарии SQL на SQL-сервере.Вам необходимо установить тайм-аут на вызывающем слое/клиенте.

В соответствии с эта статья MSDN вы можете попытаться увеличить тайм-аут следующим образом:

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

«Используйте параметр тайм-аута удаленного запроса, чтобы указать, сколько времени в секундах может занять удаленная операция, прежде чем истечет время ожидания Microsoft SQL Server.Значение по умолчанию — 600, что позволяет ждать 10 минут.Это значение применяется к исходящему соединению, инициированному компонентом Database Engine в качестве удаленного запроса.Это значение не влияет на запросы, получаемые компонентом Database Engine».

P.S.:Под 300 МБ вы имеете в виду размер результирующего файла 300 МБ?Я не надеюсь, что сам файл скрипта будет размером 300 МБ.Это был бы мировой рекорд.;-)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top