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