是“其中(ParamID = @ParamID)OR(@ParamID = -1)”一个很好的做法在sql选择

前端之家收集整理的这篇文章主要介绍了是“其中(ParamID = @ParamID)OR(@ParamID = -1)”一个很好的做法在sql选择前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我曾经写过sql语句
select * from teacher where (TeacherID = @TeacherID) OR (@TeacherID = -1)

read more

并通过@TeacherID值= -1来选择所有教师

现在我担心演出了
你能告诉我是一个好的做法还是坏的?

非常感谢

解决方法

如果TeacherID被编入索引,并且您传递的值不是-1作为TeacherID来搜索特定教师的详细信息,则此查询将最终完成全表扫描,而不是寻求索引检索的潜在更有效的选项具体教师的细节…

…除非您使用sql 2008 SP1 CU5及更高版本,并使用OPTION(RECOMPILE)提示.请参阅Dynamic Search Conditions in T-SQL有关该主题的最终文章.

原文链接:https://www.f2er.com/mssql/76260.html

猜你在找的MsSQL相关文章