Как установить время ожидания скрипта SQL Server из скрипта?

У меня есть большой файл сценария (почти 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: Ошибка: ошибка сценария.

Благодарю.

3 ответа

Решение
sqlcmd -t {n}

Где {n} должно быть числом от 0 до 65535.

Обратите внимание, что ваш вопрос немного вводит в заблуждение, поскольку сервер не имеет понятия времени ожидания, и поэтому вы не можете установить время ожидания в своем скрипте.

В вашем контексте время ожидания обеспечивается sqlcmd

Ваше решение - добавить GO каждые 100 или 150 строк

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

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

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

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

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

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

Другие вопросы по тегам