存储过程中调用另一个存储过程的结果集

原创 2006年05月25日 10:58:00

在一个存储过程中把另一个存储过程当一个表来使用,在sql server中不支持直接从from后接存储过程。这个时候我们可以利用临时表来实现。

举例:

 SELECT ID, RoleId, RoleType into #TempPurviewTableContainer  FROM SystemPurview  WHERE 1=0
 
 INSERT #TempPurviewTableContainer exec PManage_GetPurview @Type,@Id
 
 select * from #TempPurviewTableContainer

需要注意的是,这种方法不能嵌套。例如:

  procedure   a  
  begin  
      ...  
      insert   #table   exec   b  
  end  
   
  procedure   b  
  begin  
      ...  
      insert   #table    exec   c  
      select   *   from   #table     
  end  
   
  procedure   c  
  begin  
      ...  
      select   *   from   sometable   
  end  

这里a调b的结果集,而b中也有这样的应用b调了c的结果集,这是不允许的,会报“INSERT EXEC 语句不能嵌套”错误。在实际应用中要避免这类应用的发生。如果谁有好的解决方法,请留言!

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JDBC获取存储过程中select出的结果集

SQLServer在JDBC下获取存储过程中select出的结果值。

mysql开发存储过程中,select结果集再动态的条件下select count(*)统计返回都为0问题解决

在写mysql存储过程中,遇到一个坑,一般逻辑下select结果集再动态的条件下select count(*)统计返回是能得到正确统计值。但在光标嵌套和for循环中却出现动态sql的结果集始终为0,导...

mysql 存储过程中利用游标循环结果集

有这么个需求 topic表中有id 和comments数量 commemt表中有 topicid 和id 由于历史原因,【删除评论表中时未同步删除topic中评论数量的值】,所以要求一条语句执行更新。...

oracle存储过程中使用Ref Cursor强类型游标返回结果集

定义类型 定义游标 chuangj

sqlserver存储过程中利用游标遍历结果集简单示例及查询数据库时间

本实例用的是sqlserver2005   在存储过程中遍历结果,和查询数据库中所有 存储过程名称 加以处理以文本形式输出 源码: drop procedure findName creat...
  • NN955
  • NN955
  • 2012-09-27 14:47
  • 14697

C#获取一个即返回结果集,又返回值的存储过程

C#获取一个即返回结果集,又返回值的存储过程
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)