请问这个 SQL 存储过程如何优化??或更好?
CREATE   PROCEDURE   myPro   @vol         int,@num         int   ,@code   varchar(20)      AS   
 declare            @status   int    
 set   @status   =   convert   (int,rand()*10000)   
 update      cost_stock          
       set      cs_end         =@vol      ,cs_status   =   @status 
 where   cs_end    <>    0   and   cs_type   =    'A '      and   cs_sku      =   @code   
 insert   into   cost_stock   (cs_sku,cs_type) 
       select   cs_sku, 'B '   from   cost_stock    
                where   cs_status   =   @status   and   cs_sku      =   @code     
 update      cost_stock          
       set         cs_status   =   0 
 where      cs_type   =    'A '      and   cs_sku      =   @code   
 GO   
 谢谢~~~~ 
------解决方案--------------------本身都是很简单的sql语句,没有什么优化的余地
------解决方案--------------------update  cost_stock    
   set  cs_end   =@vol  ,cs_status = @status 
 where cs_end  <>  0 and cs_type =  'A '  and cs_sku  = @code   
 insert into cost_stock (cs_sku,cs_type) 
   select cs_sku, 'B ' from cost_stock  
      where cs_status = @status and cs_sku  = @code   
 update  cost_stock    
   set   cs_status = 0 
 where  cs_type =  'A '  and cs_sku  = @code 
 --------------------------------------------   
 insert into cost_stock (cs_sku,cs_type) 
   select cs_sku, 'B ' from cost_stock  
      where cs_status = @status and cs_sku  = @code 
 update  cost_stock    
   set  cs_end   = (case when cs_end  <>  0 then @vol else cs_end end)  ,cs_status = 0 
 where cs_end  <>  0 and cs_type =  'A '  and cs_sku  = @code 
 ------------------------------------------- 
 你第一句UPDATE里的cs_status = @status 不是白写吗?因为在第三句 做了不管cs_end 是不是等于0 都会让cs_status=0