Je suis en train de créer une procédure stockée pour effectuer une recherche dans une table. J'ai de nombreux champs de recherche différents, qui sont tous facultatifs. Existe-t-il un moyen de créer une procédure stockée qui puisse gérer cela ? Disons que j'ai une table avec quatre champs : ID, FirstName, LastName et Title. Je pourrais faire quelque chose comme ceci :
CREATE PROCEDURE spDoSearch
@FirstName varchar(25) = null,
@LastName varchar(25) = null,
@Title varchar(25) = null
AS
BEGIN
SELECT ID, FirstName, LastName, Title
FROM tblUsers
WHERE
FirstName = ISNULL(@FirstName, FirstName) AND
LastName = ISNULL(@LastName, LastName) AND
Title = ISNULL(@Title, Title)
END
Ça marche en quelque sorte. Cependant, elle ignore les enregistrements où FirstName, LastName ou Title sont NULL. Si le titre n'est pas spécifié dans les paramètres de recherche, je veux inclure les enregistrements où le titre est NULL - de même pour le prénom et le nom. Je sais que je pourrais probablement le faire avec du SQL dynamique, mais je voudrais éviter cela. Avez-vous des idées ?
Merci, Corey