2011-04-12 58 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 

那麼你並不需要爲他們提供價值。

但我同意阿克拉姆,你應該讓兩個不同的過程