获取从存储过程返回的表的记录数

问题描述:

我有一个存储过程,它正在返回一个表。我只是想记录的次数是有可能获取从存储过程返回的表的记录数

我的程序

create procedure Test 
as begin 
select * From Student 
end 

EXEC测试 会给记录了把 我想伯爵

NB:我需要的SP返回select语句的结果。在另一个地方,我需要由sp和column表返回的记录数是动态的。

我期待没有修改存储过程的答案。

+0

使用'COUNT(*)'.. –

+0

@vkp我已经编辑我的问题 –

您可以将数据选择到如下所示的临时表中。但是,您必须使用OPENQUERY才能这样做。您还必须先启用服务器上的数据访问。

Exec sp_serveroption 'ServerName', 'data access', 'true'

SELECT * INTO #TempTable 
FROM OPENQUERY("ServerName", 'EXEC Test') 

SELECT COUNT(*) FROM #TempTable 
+0

,我已经尝试过这一点,这是可能的,但在学生表中的列是动态的,我scnario(也可以根据要求的变化而改变) –

+0

我试过这个以及这是可能的功能,但没有工作sp –

+0

对不起@mike我已经试过这对sp无效。无法为sp –

NB:我需要的SP返回的select语句的结果。

按原样使用存储过程。也就是说,

create procedure Test 
as begin 
select * From Student 
end 

在另一个地方,我需要通过SP和 列在学生表中返回是动态的记录数。

如果此另一个地方是另一个SP,则使用rowcount。您可以这样使用它:

EXEC [sp_WhateverTheSPNameIs] 
select @@rowcount 

阅读关于@@RowCount。这是你需要的。

+0

这不会工作,因为问题表明表中的字段是动态的。如果您不知道字段名称是什么,那么您可以指定字段进行分组。 –

+0

对不起@satwik,我在我的问题中使用了一个select语句来简化问题。实际上,来自几个主表和大约20列的每列都是我期望的输出。即使我按所有列进行分组。我的表现也会下降。我期待没有修改sp的答案 –

+0

@NithilaShanmugananthan我编辑了我的答案。检查其中的编辑部分。 –