我有一个搜索屏幕,用户可以在其上指定名字,姓氏,学期或课程的任意组合.我不确定如何优化代码SQL Server 2005存储过程来处理这些可能的可选参数.什么是最有效的方式?每个组合的单独程序?将项目作为可空的parms并构建动态SQL?
我将每个参数设置为可选(默认值为null)
然后在WHERE处理它....
FirstName=ISNULL(@FirstName,FirstName) AND LastName=ISNULL(@LastName,LastName) AND SemesterID=ISNULL(@SemesterID,SemesterID)
那只会处理名字,只有姓氏,全部三个,等等.
它比动态构建SQL字符串并执行它更加漂亮/可管理/健壮.