CREATE PROCEDURE [dbo].[Products_SelectAllWhereDynamic] ( @productID int = NULL, @productName nvarchar(40) = NULL, @supplierID int = NULL, @categoryID int = NULL, @quantityPerUnit nvarchar(20) = NULL, @unitPrice money = NULL, @unitsInStock smallint = NULL, @unitsOnOrder smallint = NULL, @reorderLevel smallint = NULL, @discontinued bit = NULL ) AS BEGIN SET NOCOUNT ON; SELECT [ProductID], [ProductName], [SupplierID], [CategoryID], [QuantityPerUnit], [UnitPrice], [UnitsInStock], [UnitsOnOrder], [ReorderLevel], [Discontinued] FROM [dbo].[Products] WHERE ([ProductID] = @productID OR @productID IS NULL) AND ([ProductName] LIKE '%' + @productName + '%' OR @productName IS NULL) AND ([SupplierID] = @supplierID OR @supplierID IS NULL) AND ([CategoryID] = @categoryID OR @categoryID IS NULL) AND ([QuantityPerUnit] LIKE '%' + @quantityPerUnit + '%' OR @quantityPerUnit IS NULL) AND ([UnitPrice] = @unitPrice OR @unitPrice IS NULL) AND ([UnitsInStock] = @unitsInStock OR @unitsInStock IS NULL) AND ([UnitsOnOrder] = @unitsOnOrder OR @unitsOnOrder IS NULL) AND ([ReorderLevel] = @reorderLevel OR @reorderLevel IS NULL) AND ([Discontinued] = @discontinued OR @discontinued IS NULL) END