Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 вывод print в теле SP во время выполнения  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1258
Привет всем

SQL 2012

Обычно выводит только после выполнеия SP
заметил что на ( виртуальной машине )
иногда
начинает выводить print и во время выполнения

мне бы было оч. удобно
от чего это может зависеть

зы в SP много print но когда я запускал с локаль.ного компа - вроде никогда не замечал
т.е в идеале мне хотелось бы что выдавало сразу - чтоб следить
29 авг 14, 13:38    [16512485]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
Shakill
Member

Откуда: мск
Сообщений: 1880
Гулин Федор,

http://www.mssqltips.com/sqlservertip/1660/using-the-nowait-option-with-the-sql-server-raiserror-statement/
29 авг 14, 13:41    [16512508]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Гулин Федор,

RAISERROR(@Mes,0,0) WITH NOWAIT;
29 авг 14, 13:42    [16512517]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1258
СПС обоим
но или я туплю но тест не пашет
SQL 2012


PRINT '1 PRINT before anything else '
RAISERROR ('Now that''s what I call a message!', 0, 0) WITH NOWAIT
WAITFOR DELAY '00:00:03'
PRINT '2222 '

с локального показывает все вместе
29 авг 14, 14:52    [16513147]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
o-o
Guest
Гулин Федор,

у меня:
1 PRINT before anything else
Now that's what I call a message!
<задумывается, на сколько попросили> и только потом PRINT выдает 2222

Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (Intel X86) Jun 28 2012 08:42:37 Copyright (c) Microsoft Corporation Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
29 авг 14, 14:59    [16513206]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
o-o
Guest
Гулин Федор,

подожди, а что хотел-то, разве не надо было, чтобы сразу и выдавал???
RAISERROR(@Mes,0,0) WITH NOWAIT сразу выдает, или в чем смысл теста, показать, что не работает и ждет?
29 авг 14, 15:04    [16513253]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1258
o-o,
цель следить за прогрессом выполнения
он и так выдает все ПОСЛЕ
а хотелось бы во время выполения
на виртуалке так получается - НО через раз - не поянтно когда и почему
29 авг 14, 15:15    [16513329]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
Glory
Member

Откуда:
Сообщений: 104760
Гулин Федор
но или я туплю но тест не пашет

RAISERROR нужно использовать вместо PRINT. А не вместе с PRINT.
29 авг 14, 15:18    [16513337]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
о очередная идея показывать таймер во время выполнения..уже столько раз здесь обсасывалась сама идея и ненужность ее реализации
29 авг 14, 15:18    [16513343]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Что мешает логировать ход выполнения в таблицу?
29 авг 14, 15:39    [16513458]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
--__Александр__--
Что мешает логировать ход выполнения в таблицу?
Всё откатится если что
29 авг 14, 15:42    [16513488]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
Гулин Федор
СПС обоим
но или я туплю но тест не пашет
SQL 2012


PRINT '1 PRINT before anything else '
RAISERROR ('Now that''s what I call a message!', 0, 0) WITH NOWAIT
WAITFOR DELAY '00:00:03'
PRINT '2222 '

с локального показывает все вместе


в ssms выполняете? на вкладочку Messages во время выполнения самому надо щелкать.
а вот после выполнения она автоматически открывается - так и создается впечатление, что "все вместе" показывается.
29 авг 14, 15:45    [16513513]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1258
--__Александр__--
Что мешает логировать ход выполнения в таблицу?


НЕ мои процедуры - мне надо баги фиксить
обычно процедуры из джобов вызываются
вот я про джобы спрашивал - получил ответ
и вставлять во все процедуры какой-т логгинг кроме принтов не целеосбразно
29 авг 14, 16:11    [16513735]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1258
Glory
Гулин Федор
но или я туплю но тест не пашет

RAISERROR нужно использовать вместо PRINT. А не вместе с PRINT.

Золотые слова :)

PRINT '1 PRINT before anything else '
--select 1
RAISERROR ('1111111', 0, 0) WITH NOWAIT
WAITFOR DELAY '00:00:10'
RAISERROR ('2222222222222', 0, 0) WITH NOWAIT
--select 2
PRINT 'last PRINT '

Да - пашет - но блин вставлять RAISERROR В чужие процедуры пока я вряд ли буду
хотя в дальнейшем все возомжно
Спасибо - думаю по любому в будущем пригодится
29 авг 14, 16:18    [16513781]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1258
iap
--__Александр__--
Что мешает логировать ход выполнения в таблицу?
Всё откатится если что


кстати да - в оракле есть автономные транзакции - как раз случай логирования хорошо вписывается
в скл как я понимаю нет
наверняка есть воркараунды
а кстати - пусть не в тему
а как - ссылки наверняка есть
29 авг 14, 16:20    [16513797]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
Glory
Member

Откуда:
Сообщений: 104760
Гулин Федор
и вставлять во все процедуры какой-т логгинг кроме принтов не целеосбразно

Для "баги фиксить" существует дебаггер.
А также Профайлер.
29 авг 14, 16:24    [16513830]     Ответить | Цитировать Сообщить модератору
 Re: вывод print в теле SP во время выполнения  [new]
o-o
Guest
Гулин Федор
iap
пропущено...
Всё откатится если что


а кстати - пусть не в тему
а как


как -- в смысле что, чтоб и откатилось, и в логе осталось?
можно попутно писать в табличную переменную.
в блоке catch на любую ошибку rollback.
а после rollback обратно в лог из табл. переменной записать.
и еще и rollback туда же залогировать.

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

но это когда все в одной транзакции.
может, оно тебе и не надо?
когда не видишь в коде явного BEGIN TRAN, то каждая инструкция и так в своей транзакции
29 авг 14, 16:30    [16513884]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить