Tôi hiểu rằng bạn muốn một số hành vi động trên WHERE của bạn mệnh đề mà không cần phải xây dựng động WHERE của bạn mệnh đề.
Với một tham số duy nhất, bạn có thể sử dụng ISNULL (hoặc COALESCE ) như thế này:
SELECT * FROM Table WHERE ID = ISNULL(@id, ID)
cho phép một NULL tham số để phù hợp với tất cả. Một số thích dài hơn nhưng rõ ràng hơn:
SELECT * FROM Table WHERE (@id IS NULL) OR (ID = @id)