如何知道sql中的总记录返回存储过程?

时间:2012-02-05 21:48:25

标签: sql sql-server

我有一个名为usp_getTotalOrder的存储过程,它看起来像

Select * from Order where CompanyID = 1;

现在,我有一个包含存储过程名称的表。

在我的BLL中,我有一个存储过程名称。我想创建包含一个参数StoredProcedureName的函数,并返回总行数,如

Declare @str varchar(50) 
Set @str='GetOrders';  // Stored Procedure Name
Exec @str

但它不会返回我想从存储过程中获取的总行数,其名称在函数中。

任何IDEA ??? 请帮忙.....

3 个答案:

答案 0 :(得分:5)

查看@@ROWCOUNT

http://technet.microsoft.com/en-us/library/ms187316.aspx

您可以使用以下内容:

Declare @str varchar(50) 
Set @str='GetOrders';  // Stored Procedure Name
Exec @str
SELECT @@ROWCOUNT

答案 1 :(得分:1)

您想从sproc中计算结果集中的行数吗? 在这种情况下,您可以这样做:

INSERT INTO #Orders
Exec @str

SELECT COUNT(*)
FROM #Orders

或者您可以使用Table变量而不是临时表。

答案 2 :(得分:1)

您可以按SP的输出参数或返回值返回行数。当然,您必须将该输出参数添加到SP并在SP中使用COUNT(*)进行设置。

DECLARE @o_count INT

EXEC GetOrder @o_count = @count OUT