我有一个stroed程序有两个事件,一个是插入,另一个是删除 使用标志。当我必须删除..i必须传递删除时实际上不需要的所有参数....我需要你的帮助来解决它。
我的代码是这样的..
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 SNo=@SNo
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
答案 0 :(得分:2)
我建议为每个操作创建一个单独的SP。
答案 1 :(得分: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
然后您不需要为它们提供值。
但我同意Akram你应该做两个单独的程序