如何在sql server中检索声明的变量

时间:2016-02-25 20:31:49

标签: sql sql-server

使用下面的代码(我发现 here),正在创建一个包含2000万行的变量。我在哪里可以找到存储的变量。我能够找到我创建的表格,但这个特定的变量是不可见的。

我的最终目标是以CSV格式导出此变量及其值。我该如何做到这一点。

Declare @p_NumberOfRows Bigint

--We need 20 million rows

Select @p_NumberOfRows=20000000;

With Base As
(
Select 1 as n
Union All
Select n+1 From Base Where n < Ceiling(SQRT(@p_NumberOfRows))
),
Expand As
(
Select 1 as C
From Base as B1, Base as B2
),
Nums As
(
Select Row_Number() OVER(ORDER BY C) As n
From Expand
)
Select n from Nums Where n<=@p_NumberOfRows

--Remove Maximum Recursion level constraint

OPTION (MaxRecursion 0);

1 个答案:

答案 0 :(得分:1)

根据您在应用程序中处理将要创建csv的结果集的方式,似乎有几种方法可以实现。

首先将变量count添加到select

中返回的每一行
Select n, @p_NumberOfRows as NumberOfRows from Nums Where n<=@p_NumberOfRows

或者您可以返回两个结果集,一个包含数据,另一个包含行数变量

Select n from Nums Where n<=@p_NumberOfRows
select @p_NumberOfRows as NumberOfRows 

或者你可以在一个带有run_Instance_Id和日期的表中存储变量行数,然后从中拉出。仅当您需要查看在特定运行时发送的某个未来日期的行数时才会这样做。