An INSERT EXEC statement cannot be nested.

今天开发同事有咨询问题,报错An INSERT EXEC statement cannot be nested.

经过在网上查询,最终找到解决方案,具体见:http://www.sommarskog.se/share_data.html#INSERTEXEC

Demo如下:

use demo 
go 
alter proc usp_a @a int 
as 
create table #a(id int,editdt datetime) 
insert into #a 
        select @a,getdate() 
select * from #a   

alter proc usp_b 
as 
create table #c (id int,editdt datetime) 
insert into #c exec usp_a '2' 
select * from #c 


create table #d (id int,editdt datetime) 
insert into #d exec usp_b 
select * from #d

  

Msg 8164, Level 16, State 1, Procedure usp_b, Line 5
An INSERT EXEC statement cannot be nested.

 

可以采用如下的方式解决:

use demo
go
alter proc usp_c @a int
as
insert #c select @a,getdate()

alter proc usp_d
as
create table #c(id int,editdt datetime)
exec usp_c '2'
select * from #c

 

create table #e (id int,editdt datetime)
insert into #e exec usp_d
select * from #e

  

 

转载于:https://www.cnblogs.com/Wison-Ho/p/3993169.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值