存储过程"Insert exec 语句不能嵌套"问题

今天碰到一个问题,存储过程嵌套:存储过程ProcC里嵌套ProcB,ProcB里嵌套ProcA,执行ProcC时就报错“INSERT EXEC 语句不能嵌套”;

下面这个方法可以解决问题:

  CREATE PROCEDURE ProcA
  AS
    SELECT '123456'
  GO

  --执行成功
  EXEC ProcA   


  CREATE PROCEDURE ProcB
  AS
      DECLARE @table TABLE(SN nvarchar(500))
      INSERT INTO @table
      EXEC ProcA
  GO

  --执行成功

  EXEC ProcB


  CREATE PROCEDURE ProcC
  AS
      DECLARE @table TABLE(SN nvarchar(500))
      INSERT INTO @table
      EXEC ProcB
  GO

  --执行失败  “INSERT EXEC 语句不能嵌套”

  EXEC ProcC

 

******只需要把ProcC里的insert into @table  改写成 set  @Sql='INSERT INTO @table' 就解决了,如果还有存储过程ProcD嵌套ProcC,也只需要ProcD的insert

  ALTER PROCEDURE ProcC
  AS
      DE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值