如何计算存储过程返回的结果集数? (SQL Server 2012)

时间:2016-05-26 10:59:46

标签: sql sql-server sql-server-2012

实际上我有一个存储过程(它将一个对象作为输入),它返回两个或三个表(结果集)。现在我必须通过结果集的no来对对象进行分类。我怎么能以程序化的方式做到这一点? 该程序不可编辑。否则这是一个小工作,通过添加一个标志来完成。 在此先感谢

2 个答案:

答案 0 :(得分:0)

计算NextResult()成功SqlDataReader次来电的次数。

在评论中讨论后,

更新

结果集立即可用。这意味着,第一个可以在存储过程完成之前很久就可用,并且只要程序正在运行,就没有办法(除了源代码分析之外)确定还有多少结果集可用。因此,您需要将过程运行到最后,获取所有结果集,然后才能正确计算它们。你建议有效地在SQL Server上运行存储过程到最后并分析有多少结果集可用。这可以(通过EXEC ... WITH RESULT SETS(SQL Server 2012及更高版本)完成并进行错误处理,但这样做效率会非常低。

如果您可以创建新程序,为什么不重新实现具有额外返回值的现有程序?

答案 1 :(得分:0)

创建数据集并通过调用存储过程来填充它。然后计算数据集的表格。