如何在T-SQL存储过程中使用可选参数?
我正在创建一个存储过程以通过表进行搜索。我有许多不同的搜索字段,所有这些都是可选的。有没有一种方法可以创建一个存储过程来处理呢?假设我有一个包含四个字段的表:ID,FirstName,LastName和Title。我可以做这样的事情: 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 这类作品。但是,它将忽略FirstName,LastName或Title为NULL的记录。如果在搜索参数中未指定“标题”,则我要包括“标题”为NULL的记录-“名字”和“姓氏”相同。我知道我可以使用动态SQL来做到这一点,但我想避免这种情况。