SQL Serverでは、定義していないプロシージャにパラメータを渡すことはできません。この種の設計に最も近いのは、次のようなオプションのパラメータを使用することだと思います。
CREATE PROCEDURE GetTaskEvents
@TaskName varchar(50),
@ID int = NULL
AS
BEGIN
-- SP Logic
END;
使用する可能性のあるすべてのパラメータを含める必要があります 定義で。その後、どちらの方法でも自由にプロシージャを呼び出すことができます:
EXEC GetTaskEvents @TaskName = 'TESTTASK', @ID = 2;
EXEC GetTaskEvents @TaskName = 'TESTTASK'; -- @ID gets NULL here