使用多个可选标准对搜索屏幕的存储过程进行编码

Cav*_*rob 1 sql-server parameters stored-procedures optional

我有一个搜索屏幕,用户可以在其上指定名字,姓氏,学期或课程的任意组合.我不确定如何优化代码SQL Server 2005存储过程来处理这些可能的可选参数.什么是最有效的方式?每个组合的单独程序?将项目作为可空的parms并构建动态SQL?

Kev*_*ild 7

我将每个参数设置为可选(默认值为null)

然后在WHERE处理它....

FirstName=ISNULL(@FirstName,FirstName)
AND
LastName=ISNULL(@LastName,LastName)
AND
SemesterID=ISNULL(@SemesterID,SemesterID)
Run Code Online (Sandbox Code Playgroud)

那只会处理名字,只有姓氏,全部三个,等等.

它比动态构建SQL字符串并执行它更加漂亮/可管理/健壮.