获取从存储过程返回的表的记录数
我有一个存储过程,它正在返回一个表。我只是想记录的次数是有可能获取从存储过程返回的表的记录数
我的程序
create procedure Test
as begin
select * From Student
end
EXEC测试 会给记录了把 我想伯爵
NB:我需要的SP返回select语句的结果。在另一个地方,我需要由sp和column表返回的记录数是动态的。
我期待没有修改存储过程的答案。
您可以将数据选择到如下所示的临时表中。但是,您必须使用OPENQUERY
才能这样做。您还必须先启用服务器上的数据访问。
Exec sp_serveroption 'ServerName', 'data access', 'true'
SELECT * INTO #TempTable
FROM OPENQUERY("ServerName", 'EXEC Test')
SELECT COUNT(*) FROM #TempTable
,我已经尝试过这一点,这是可能的,但在学生表中的列是动态的,我scnario(也可以根据要求的变化而改变) –
我试过这个以及这是可能的功能,但没有工作sp –
对不起@mike我已经试过这对sp无效。无法为sp –
NB:我需要的SP返回的select语句的结果。
按原样使用存储过程。也就是说,
create procedure Test
as begin
select * From Student
end
在另一个地方,我需要通过SP和 列在学生表中返回是动态的记录数。
如果此另一个地方是另一个SP,则使用rowcount
。您可以这样使用它:
EXEC [sp_WhateverTheSPNameIs]
select @@rowcount
阅读关于@@RowCount。这是你需要的。
这不会工作,因为问题表明表中的字段是动态的。如果您不知道字段名称是什么,那么您可以指定字段进行分组。 –
对不起@satwik,我在我的问题中使用了一个select语句来简化问题。实际上,来自几个主表和大约20列的每列都是我期望的输出。即使我按所有列进行分组。我的表现也会下降。我期待没有修改sp的答案 –
@NithilaShanmugananthan我编辑了我的答案。检查其中的编辑部分。 –
使用'COUNT(*)'.. –
@vkp我已经编辑我的问题 –