मुझे लगता है कि आप अपने WHERE . पर कुछ गतिशील व्यवहार चाहते हैं क्लॉज, बिना गतिशील रूप से बिल्ड आपका WHERE खंड।
एक ही पैरामीटर के साथ, आप ISNULL . का उपयोग कर सकते हैं (या COALESCE ) इस तरह:
SELECT * FROM Table WHERE ID = ISNULL(@id, ID)
जो एक NULL . की अनुमति देता है सभी से मेल खाने के लिए पैरामीटर। कुछ लंबे लेकिन अधिक स्पष्ट पसंद करते हैं:
SELECT * FROM Table WHERE (@id IS NULL) OR (ID = @id)