SQL Server tidak mengizinkan Anda untuk meneruskan parameter ke prosedur yang belum Anda tetapkan. Saya pikir yang paling dekat dengan desain semacam ini adalah dengan menggunakan parameter opsional seperti:
CREATE PROCEDURE GetTaskEvents
@TaskName varchar(50),
@ID int = NULL
AS
BEGIN
-- SP Logic
END;
Anda harus menyertakan setiap parameter yang mungkin Anda gunakan dalam definisi. Maka Anda bebas untuk memanggil prosedur dengan cara apa pun:
EXEC GetTaskEvents @TaskName = 'TESTTASK', @ID = 2;
EXEC GetTaskEvents @TaskName = 'TESTTASK'; -- @ID gets NULL here