Very nice and pragmatic article.
I also like the solution proposed by Toby Harman, though I'm not able to determine the impact on performance.
I propose another solution, the one that I use most :hehe: :
ALTER PROCEDURE [spSearchPeople]
@firstname nvarchar(50) = null,
@lastname nvarchar(50) = null
AS
BEGIN
SELECT ID, FirstName, LastName FROM People
WHERE
FirstName LIKE '%' + ISNULL(@firstname, FirstName) + '%'
END
obviously it also works perfectly with equal where conditions 😛
ALTER PROCEDURE [spSearchPeople]
@firstname nvarchar(50) = null,
@lastname nvarchar(50) = null
AS
BEGIN
SELECT ID, FirstName, LastName FROM People
WHERE
ISNULL(@firstname, FirstName) = FirstName
END
Cheers