在脚本结束之前,选择语句到输出窗口的SQL Server强制结果

时间:2011-01-19 16:33:19

标签: sql sql-server tsql

有没有办法在达到整个脚本结束之前将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 个答案:

答案 0 :(得分:8)

您可以使用raiseerror,这将导致缓冲区刷新:

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

你可以把它放在查询之间。

答案 1 :(得分:3)

作为替代方案,您可以将变量存储在临时表中。

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)