Basically if you want to embed the logic inside a single procedure, you have to pass a parameter which defines what logic path will be applied in your call.
When done properly this parameter should be enumerated in C# and possibly also stored in the database. Also personally I prefer numbers since they are small, easy to enumerate and so on.
But in a rough form you could start from something like:
CREATE PROCEDURE SP_INSERT
( @ID int,
@Name char(20),
@ProductType varchar(20),
@Logic int
)
AS
BEGIN
IF @Logic = 1 BEGIN
insert into Employee(Employee_ID,Employee_Name)values(@ID,@Name);
END;
IF @Logic = 2 BEGIN
insert into Student(Student_ID,Student_Name)values(@ID,@Name);
END;
IF @Logic = 1 OR @Logic = 2 BEGIN
update Product set Product_ID=@ID where Product_Type=@ProductType;
END;
END;
Note that this is just a scetch, most likely not following the logic you want.