SQL सर्वर आपको उस प्रक्रिया के लिए पैरामीटर पास करने की अनुमति नहीं देता है जिसे आपने परिभाषित नहीं किया है। मुझे लगता है कि आप इस तरह के डिजाइन के सबसे करीब पहुंच सकते हैं जैसे वैकल्पिक पैरामीटर का उपयोग करना:
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