我有一個存儲過程,它正在返回一個表。我只是想記錄的次數是有可能獲取從存儲過程返回的表的記錄數
我的程序
create procedure Test
as begin
select * From Student
end
EXEC測試 會給記錄了把 我想伯爵
NB:我需要的SP返回select語句的結果。在另一個地方,我需要由sp和column表返回的記錄數是動態的。
我期待沒有修改存儲過程的答案。
我有一個存儲過程,它正在返回一個表。我只是想記錄的次數是有可能獲取從存儲過程返回的表的記錄數
我的程序
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我已經編輯我的問題 –