请问这个存储过程语句问题出在哪里?
CREATE   PROCEDURE   [dbo].[mp_insert]    
 AS 
 declare   @sYear   nchar(4) 
 declare   @sMonth   nchar(2) 
 declare   @sDate   nchar(7)     
 delete   from   table1   
 set   @sMonth=right( '00 '   +   convert(nchar(2),month(getdate())),2) 
 set   @sYear=convert(nchar(4),year(getdate())) 
 set   @sDate=@sYear   +    '/ '   +   @sMonth   
 if   @sMonth= '01 '    
 begin    
             if   exists(select   *   from   table2   where   ....)   
 end   
 GO     
 以上语句居然报错:Error156:   Incorrent   syntax   near   the   keyword    'end '. 
 请问大家,问题出在哪里了?   
------解决方案--------------------begin  
     if exists(select * from table2 where ....)   
 end     
 最后这块 
 if判断下面没有语句   
 begin  
     if exists(select * from table2 where ....) 
     ..... 
 end
------解决方案--------------------CREATE PROCEDURE [dbo].[mp_insert]  
 AS 
 declare @sYear nchar(4) 
 declare @sMonth nchar(2) 
 declare @sDate nchar(7)     
 delete from table1   
 set @sMonth=right( '00 ' + convert(nchar(2),month(getdate())),2) 
 set @sYear=convert(nchar(4),year(getdate())) 
 set @sDate=@sYear +  '/ ' + @sMonth   
 if @sMonth= '01 '  
 begin  
     if exists(select * from table2 ) 
     print 1--指定 
  else  
 print 2   
 end
------解决方案--------------------begin  
     if exists(select * from table2 where ....)   
 end 
 在这句的if语句的条件的西面必须要有处理语句,如果没有语句就要报错! 
 实在不想有处理语句,就象上面人说的用一条print语句或者Rollback transaction语句吧! 
 多行语句在执行体中必须要在begin...end中间. 
 注意一下语法就好了, 
 谢谢先~~~