【问题标题】:sql stored procedure clear resultsetssql存储过程清除结果集
【发布时间】:2010-02-25 14:29:11
【问题描述】:

我能否清除存储过程已经收集的多个结果集,以便创建的下一个结果集成为该过程返回的第一个结果集?

【问题讨论】:

    标签: sql-server tsql stored-procedures multiple-resultsets


    【解决方案1】:

    这取决于数据库。在 Sql Server 中,一旦发送了结果集,它就消失了。接收应用程序/代码必须处理它。如果您需要这样的逻辑,请将结果收集到一个临时表中,并仅在过程结束时返回所需的内容。

    【讨论】:

    • 当我决定要取消当前集合并返回另一个集合时,我仍在 proc 中。所以接收器还没有收到任何东西。
    • 就像我在回答中所说的那样,在临时表中收集任何需要“召回”的结果。当你的所有逻辑都确定了应该返回什么时,你可以从你需要的任何临时表中选择。
    【解决方案2】:

    正如 KM 所说,这在一定程度上取决于数据库。您能解释一下您的存储过程如何收集多个结果集吗?您是通过多个联合还是通过创建动态 sql 语句来实现的?

    【讨论】:

    • MS SQL 2005。我有一个运行几个完全独立的 sql 语句的 proc,每个语句都会将结果集添加到 proc 输出的多个结果集中。在 proc 快结束时的某个时刻,我想“取消”迄今为止创建的结果集,并创建一个新的结果集,这将是唯一的结果集,然后由 proc 输出并由客户端接收。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 2015-12-27
    • 2019-11-08
    • 1970-01-01
    相关资源
    最近更新 更多