2011-04-12 29 views
0

我有一个过程中有两个事件,一个是插入,另一个是删除 使用标志。当我必须删除..我必须通过所有不需要的参数,而删除....我需要你的帮助来整理它。不希望通过存储过程中的所有不必要的参数

我的代码是这样的..

ALTER  Proc Proc_Manage_Opening_Leave @ActionFlag int,@SNo int,@LEAVE_ID int,@GIVEN decimal,@GIVENMONTH int,@GIVENYEAR int,@APPROVEDBY int,@IsOpening varchar(6),@EMP_ID int 
as 
SET NOCOUNT ON 
if(@ActionFlag=0) 
BEGIN 

insert into Tbl_Org_leave_log (EMP_ID,LEAVE_ID,GIVEN,GIVENMONTH,GIVENYEAR,ApprovedBy,OP_FLAG,GIVENDAY) 
values(@EMP_ID,@LEAVE_ID,@GIVEN,@GIVENMONTH,@GIVENYEAR,@APPROVEDBY, 
(
case 
when @IsOpening='False' then 0 
when @IsOpening='True' then 1 
ELSE NULL 
END 
), 
datepart(day,getdate())) 
END 

IF(@ActionFlag=1) 
BEGIN 

delete from tbl_org_leave_log where [email protected] 
END 


GO 
SET QUOTED_IDENTIFIER OFF 
GO 
SET ANSI_NULLS ON 
GO 
+0

不要忘了接受最好的答案.. – 2011-05-13 08:59:19

回答

2

我建议创建的每一个动作一个单独的SP。

+0

肯定的。分开它! – 2011-04-12 06:40:35

1

更改参数有像这样的默认值:

alter  proc Proc_Manage_Opening_Leave 
    @ActionFlag int 
,@SNo int = null 
,@LEAVE_ID int = null 
,@GIVEN decimal = null 
,@GIVENMONTH int = null 
,@GIVENYEAR int = null 
,@APPROVEDBY int = null 
,@IsOpening varchar(6) = null 
,@EMP_ID int = null 
as 

那么你并不需要为他们提供价值。

但我同意阿克拉姆,你应该让两个不同的过程