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

先看代码

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值