SQL Server nie pozwala na przekazywanie parametrów do procedury, która nie została zdefiniowana. Myślę, że najbliższym osiągnięciem tego rodzaju projektu jest użycie opcjonalnych parametrów, takich jak:
CREATE PROCEDURE GetTaskEvents
@TaskName varchar(50),
@ID int = NULL
AS
BEGIN
-- SP Logic
END;
Musisz podać każdy możliwy parametr, którego możesz użyć w definicji. Wtedy będziesz mógł wywołać procedurę w obie strony:
EXEC GetTaskEvents @TaskName = 'TESTTASK', @ID = 2;
EXEC GetTaskEvents @TaskName = 'TESTTASK'; -- @ID gets NULL here