zoukankan      html  css  js  c++  java
  • SQL 在存储过程中获取另一个存储过程返回的结果集

    INSERT INTO table_name EXEC procedure_name @parameters_var

    基本思路是先创建一个临时表,通过INSERT ... EXEC ...语句将存储过程的返回结果保存到临时表中,接下来就可以像处理普通数据表那样对待这个临时表了。

    对于动态SQL语句,可以通过dbo.sp_executesql存储过程执行,或者直接作为EXEC的参数执行。

    最后给出两种最常见的处理流程:
    1。创建一个临时表#tmp,表结构与目标存储过程procedure_name的返回结果集兼容(兼容即可,不必相同)。
    CREATE TABLE #tmp(
    [columns_list]
    )
    2。执行存储过程并将存储过程的返回结果集插入临时表。
    INSERT INTO #tmp EXEC procedure_name @parameters_var
     
    3。现在可以使用(过滤,更改或检索)#tmp了。^_^
    IF EXISTS(SELECT * FROM #tmp)
    BEGIN
    --执行分支1
    END ELSE BEGIN
    --执行分支2
    END
    4。别忘了最后清除临时表。
    DROP TABLE #tmp
     
    对于动态SQL语句,只要将第二步改为
    INSERT INTO #tmp EXEC dbo.sp_executesql @querystring_var
    即可。
  • 相关阅读:
    log4j2 工具类
    Intellij IDEA的快捷键
    Intellij IDEA设置忽略部分类编译错误
    idea 激活
    DataGrip使用入门
    IDEA Run/Debug Configurations 中点击“+”号没有tomcat server选项
    临时
    java异常类
    java匿名类
    java内部类
  • 原文地址:https://www.cnblogs.com/workformylove/p/2881844.html
Copyright © 2011-2022 走看看