select @e=@@error怎么没有了?求救
我在一个存储过程自动生成另一个对表的Insert的存储过程中,其它都对 
 但是在拼接SQL语句时做了如下 
 sql= 'create   procedure   ... ' 
 sql=sql+ 'select   @e=@@error    ' 
 sql=sql+ 'if   @e=0.... ' 
 exec   sql 
 这样的语句生成到最后,这个select语句在最终生成的存储过程中没有出现,是怎么回事,该怎么用法,求救 
------解决方案--------------------@e   这个变量没有定义
------解决方案--------------------try   
 declare @sql varchar(2000) 
 set @sql= 'create procedure ...  ' 
 set @sql=@sql+ 'as begin 定义 @e select @e=@@error  ' 
 set @sql=@sql+ 'if @e=0 ... ' 
 exec ( ' '+@sql+ ' ')
------解决方案--------------------把@sql打印出来看一下
------解决方案--------------------不很明白你上面说的意思: 
   否考虑在这里的存储过程就被执行掉了,而不是把它作为文字放在 
 需要的后面的那个存储过程中,这个怎么处理   
 可以先判断删除: 
 if exists(select count(*) from sysobjects where name= 'procedure_name ' and type= 'p ') 
 drop procedure procedure_name   
 可能答所非问
------解决方案--------------------这样测试没有问题啊 
 create proc #test 
 as   
 declare @sql nvarchar(4000)   
 select @sql =  ' '   
 select @sql = @sql +  ' 
 create proc #test2 as  
 declare @e int 
 select 1 
 select @e = @@error 
 select @e ' 
 exec sp_executesql @sql 
 select @sql =  'exec #test2 ' 
 exec sp_executesql @sql   
 #test   
 drop proc #test  
 drop proc #test2