Сообщение вывода T-SQL Во время выполнения в SSMS

У меня есть простой запрос, который петли, и я хочу видеть сообщения PRINT во время выполнения. Запрос выглядит примерно так:

WHILE 1 = 1
BEGIN
    WAITFOR DELAY '000:00:10'
    PRINT 'here'
END

ПЕЧАТЬ "здесь" не выводится, пока я не остановлю процесс, однако я хочу видеть его во время его запуска. Возможно ли это?

Ответы

Ответ 1

Я считаю, что отпечатки буферизуются, освобождая "куски" по мере заполнения буфера.

попробуйте использовать raiserror:

Как очистить буфер PRINT в TSQL?

Ответ 2

Вы можете использовать RAISERROR с сервером 0 и опцией NOWAIT

WHILE 1 = 1
BEGIN
    WAITFOR DELAY '000:00:10'
    RAISERROR ('here', 0, 1) WITH NOWAIT
END

Ответ 3

Попробуйте это.

DECLARE @i INT = 1

WHILE ( @i <= 10)

BEGIN 

--- do something

SELECT 'Completed  ' + CAST(@i AS VARCHAR(50)) + '  :  ' + CAST(GETDATE() AS VARCHAR(50));

SET @i = @i + 1

END