Immagino che tu voglia un comportamento dinamico sul tuo WHERE clausola, senza dover costruire dinamicamente il tuo WHERE clausola.
Con un singolo parametro puoi usare ISNULL (o COALESCE ) in questo modo:
SELECT * FROM Table WHERE ID = ISNULL(@id, ID)
che consente un NULL parametro per abbinare tutti. Alcuni preferiscono il più lungo ma più esplicito:
SELECT * FROM Table WHERE (@id IS NULL) OR (ID = @id)