SQL Server tillåter inte att du skickar parametrar till en procedur som du inte har definierat. Jag tror att det närmaste du kan komma den här typen av design är att använda valfria parametrar som så:
CREATE PROCEDURE GetTaskEvents
@TaskName varchar(50),
@ID int = NULL
AS
BEGIN
-- SP Logic
END;
Du skulle behöva inkludera alla möjliga parametrar som du kan använda i definitionen. Då är du fri att ringa proceduren på båda håll:
EXEC GetTaskEvents @TaskName = 'TESTTASK', @ID = 2;
EXEC GetTaskEvents @TaskName = 'TESTTASK'; -- @ID gets NULL here