我有一个名为usp_getTotalOrder
的存储过程,它看起来像
Select * from Order where CompanyID = 1;
现在,我有一个包含存储过程名称的表。
在我的BLL中,我有一个存储过程名称。我想创建包含一个参数StoredProcedureName
的函数,并返回总行数,如
Declare @str varchar(50)
Set @str='GetOrders'; // Stored Procedure Name
Exec @str
但它不会返回我想从存储过程中获取的总行数,其名称在函数中。
任何IDEA ??? 请帮忙.....
答案 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