SQL Server принудительно выводит результаты оператора Select в окно вывода до конца сценария - PullRequest
2 голосов
/ 19 января 2011

Есть ли способ принудительно заставить результаты оператора Select в окне вывода в SQL Server Management Studio до достижения конца всего сценария?

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

Моя проблема в том, что в обоих запросах используются одни и те же переменные, и если используется оператор "GO", переменные будут потеряны. Пример ниже.

declare @MyVar int
set @MyVar = 1

-- Query with short execution time
select  *
from    MyTable t
where   t.Column = @MyVar

GO -- @MyVar is lost

-- Query with long execution time
select  *
from    MyOtherTable o
where   o.Column = @MyVar -- @MyVar no longer exists

Ответы [ 2 ]

8 голосов
/ 19 января 2011

Вы можете использовать повышение в памяти, что приведет к сбросу буфера:

RAISERROR( 'Just to print everything',0,1) WITH NOWAIT

Вы можете поместить это между запросами.

3 голосов
/ 19 января 2011

В качестве альтернативы вы можете сохранить вашу переменную во временной таблице.

create table #MyTable (MyVar int)
insert into #MyTable (MyVar) values (1)

-- Query with short execution time
select  *
from    MyTable t
where   t.Column = (select MyVar from #MyTable)

GO -- #MyTable is preserved

-- Query with long execution time
select  *
from    MyOtherTable o
where   o.Column = (select MyVar from #MyTable)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...