SQL Server: вихідні дані PRINT з’являються не відразу


78

У SQL Server 2005 Management Studio виявляється, що висновки операторів PRINT з'являються не відразу: якщо у мене є оператор PRINT, за яким слідує тривалий оператор, вихід PRINT з'явиться лише після наступного оператора.

Чи є спосіб очистити результат раніше? У мене запущено кілька сценаріїв оновлення, для завершення яких потрібен вік, і я хотів би знати, на якій відстані знаходиться сценарій (тому я знаю, чи потрібно зачекати кілька хвилин, а потім розпочати наступний, чи піти на обід ).


1
У вас є "ПЕРЕЙТИ" між оператором PRINT та тривалим оператором?
Бернхард Хофманн,

5
можливий дублікат Як очистити буфер PRINT у TSQL?
usr

1
Роджер: Я бачив вашу розмову на blog.differentpla.net/blog/2006/10/19/… . У мене така ж скарга. Чому мені потрібно бачити свою інформацію для входу та слова "SQLQuery999.sql" на тому короткому просторі, який витісняє всю іншу важливу інформацію, чи не так ?! Радий бачити, як ти говориш, хоча це нічого не змінить. Мені доводиться вдаватися до використання інтерфейсу, наданого Visual Studio, використовуючи Провідник серверів, щоб не сталося менш смертельних аварій.
Jenna Leaf

Відповіді:


122

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

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

У моїх тестах ПРИНТИ перед надрукуванням RAISERROR
Крейг Ефрейн

3
Відбитки з'являться перед вихідними даними з RAISERROR, але вони не будуть повернуті клієнту, доки не буде створено виняток.
ConcernedOfTunbridgeWells
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.