2009-02-19 58 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