2009-02-19 93 views
11

我有一個存儲過程返回ID,名稱,描述並不需要輸入參數。但是,我感興趣的是我得到了多少結果。存儲過程的計數結果

我希望是這樣工作的:

SELECT COUNT(*) FROM EXEC MyStoredProcedure 

,但我得到了以下錯誤SqlServer的梟雄工作室:關鍵字「EXEC」附近 語法不正確。 你能告訴我一個小小的代碼示例,我該怎麼做?

回答

18

這不起作用。我建議:

exec MyStoredProcedure 
select @@rowcount 

或者,您也可以返回計數作爲輸出參數

+0

如果你有什麼關於設置NOCOUNT什麼?這仍然有效嗎? – user29964 2009-02-19 10:49:07

+1

對不起我的壞:http://msdn.microsoft.com/en-us/library/ms189837.aspx。 @@ ROWCOUNT繼續工作 – user29964 2009-02-19 10:54:17

-3

編寫一個新的存儲過程,爲您計數。

3

你需要把邏輯的存儲過程,並從存儲過程返回計數。您可以在查詢後立即使用@@ ROWCOUNT變量來完成此操作。這至少會在MS SQL Servet中起作用。

存儲過程:

CREATE PROC MyPROC 
AS 
DECLARE @MyCount int 

... 

SELECT * FROM MyTable WHERE ... 

SELECT @MyCount = @@ROWCOUNT 

... 

return @MyCOunt 

調用代碼:

DECLARE @MyCount int 

EXEC @MyCount = EXEC MyProc