As possible alternatives, modification of Shweta N Mishra's solution:
CREATE PROCEDURE [MainProc]
@procNameToExecute varchar(50),
@VariableId int,
@VariableValue int
AS
BEGIN
If @procNameToExecute='1stProc' Begin
exec 1stChildProc @VariableId,@VariableValue;
End;
If @procNameToExecute='2ndProc' Begin
exec 2ndChildProc @VariableId,@VariableValue;
End;
If @procNameToExecute='3rdProc' Begin
exec 3rdChildProc @VariableId,@VariableValue;
End;
END
CREATE PROCEDURE [MainProc]
@VariableId int,
@Month int = null,
@Year int = null,
@Quarter int = null
AS
BEGIN
If @Month is not null Begin
exec 1stChildProc @VariableId,@Month;
End;
If @Year is not null Begin
exec 2ndChildProc @VariableId,@Year;
End;
If @Quarter is not null Begin
exec 3rdChildProc @VariableId,@Quarter;
End;
END