我有一个存储过程返回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