Как установить время ожидания скрипта 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 строк
Я думаю, что нет никакой концепции тайм-аута в сценарии 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 МБ. Это был бы мировой рекорд. ;-)