2016-04-14 97 views
0

我有一個存儲過程,它正在返回一個表。我只是想記錄的次數是有可能獲取從存儲過程返回的表的記錄數

我的程序

create procedure Test 
as begin 
select * From Student 
end 

EXEC測試 會給記錄了把 我想伯爵

NB:我需要的SP返回select語句的結果。在另一個地方,我需要由sp和column表返回的記錄數是動態的。

我期待沒有修改存儲過程的答案。

+0

使用'COUNT(*)'.. –

+0

@vkp我已經編輯我的問題 –

回答

1

您可以將數據選擇到如下所示的臨時表中。但是,您必須使用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 –

0

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我編輯了我的答案。檢查其中的編輯部分。 –