Подтвердить что ты не робот

SQL Server: вывод PRINT не появляется сразу

В SQL Server 2005 Management Studio кажется, что вывод инструкций PRINT не отображается сразу: если у меня есть инструкция PRINT, за которой следует длинный оператор, вывод PRINT не появляется до следующего утверждения.

Есть ли способ сбросить выход раньше? Я запускаю несколько сценариев обновления, для которых требуется возраст, и я хотел бы знать, как далеко продвигается script (поэтому я знаю, стоит ли ждать несколько минут, а затем запускать следующий, или идти на обед).

4b9b3361

Ответ 1

Нет. Они будут возвращаться только при совершении транзакции, когда будут возвращены другие записи или завершение инструкции (go терминатор оператора в пакете SQL). Вы можете использовать raiserror на уровнях неустранимых ошибок (0-18), чтобы получить немедленную обратную связь такого рода. Например:

RAISERROR ('Foo', 10, 1) WITH NOWAIT

Ответ 2

Для меня это сработало, просто поместив команду GO после команд печати, например

print 'test'
print 'test'
go

В целом, мой вывод следующий: вывод mssql script выполнения, выполняемого в SMS-графическом интерфейсе или с sqlcmd.exe, очищается в файле, stdoutput, gui-окне в первом операторе GO или до конца script.

Промывка внутри хранимой процедуры действует по-разному, так как вы не можете разместить GO внутри.

Ссылка: инструкция tsql Go