小小一招解决“INSERT EXEC 语句不能嵌套”的问题

本文探讨了在SQL Server中创建并调用多个嵌套存储过程的问题。通过对比两种不同的实现方式,指出了直接在存储过程中使用EXEC调用其他存储过程可能导致的问题,并提供了一种可行的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看代码

Create   Procedure   up_test1   as   
    
Select   '1111'   --这里没有问题   
go   
Create   Procedure   up_test2  AS   
    
create   table   #tt   (a   Varchar(4))
    
insert   into   #tt   Exec   up_test1    
go   
Create   Procedure   up_test3   as   
    
Create   Table   #ttt   (b   varchar(4))   
    
Insert   Into   #ttt   Exec   up_test2      
go   
     


exec   up_test3   --这个执行就不能通过。  

 

 

 

经过向BAIDU GOOGLE 等大仙求救都无任何音讯后自己摸索 

 简单更改了一下存储过程就能执行通过

 

--
--
 Create   Procedure   up_test1   as   
--
    Select   '1111'   --这里没有问题   
--
go 
  
Alter   Procedure   up_test2  AS   
    
create   table   #tt   (a   Varchar(4))
    
Declare  @strsql nvarchar(2000)
    
set  @strsql='insert   into   #tt'
    
Exec   up_test1   

go   
--Create   Procedure   up_test3   as   
--
    Create   Table   #ttt   (b   varchar(4))   
--
    Insert   Into   #ttt   Exec   up_test2      
--
go   
     

exec   up_test3   --这个执行就能通过。 

 

 

……

 

有时候稍微转个小弯就能搞定问题 

转载于:https://www.cnblogs.com/eugene512/archive/2010/07/18/1780026.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值