我有一個存儲過程返回ID,名稱,描述並不需要輸入參數。但是,我感興趣的是我得到了多少結果。存儲過程的計數結果
我希望是這樣工作的:
SELECT COUNT(*) FROM EXEC MyStoredProcedure
,但我得到了以下錯誤SqlServer的梟雄工作室:關鍵字「EXEC」附近 語法不正確。 你能告訴我一個小小的代碼示例,我該怎麼做?
我有一個存儲過程返回ID,名稱,描述並不需要輸入參數。但是,我感興趣的是我得到了多少結果。存儲過程的計數結果
我希望是這樣工作的:
SELECT COUNT(*) FROM EXEC MyStoredProcedure
,但我得到了以下錯誤SqlServer的梟雄工作室:關鍵字「EXEC」附近 語法不正確。 你能告訴我一個小小的代碼示例,我該怎麼做?
這不起作用。我建議:
exec MyStoredProcedure
select @@rowcount
或者,您也可以返回計數作爲輸出參數
編寫一個新的存儲過程,爲您計數。
你需要把邏輯的存儲過程,並從存儲過程返回計數。您可以在查詢後立即使用@@ 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
SELECT @@ROWCOUNT
如果你有什麼關於設置NOCOUNT什麼?這仍然有效嗎? – user29964 2009-02-19 10:49:07
對不起我的壞:http://msdn.microsoft.com/en-us/library/ms189837.aspx。 @@ ROWCOUNT繼續工作 – user29964 2009-02-19 10:54:17