加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

是“其中(ParamID = @ParamID)OR(@ParamID = -1)”一个很好的做

发布时间:2020-12-12 08:23:16 所属栏目:MsSql教程 来源:网络整理
导读:我曾经写过sql语句 select * from teacher where (TeacherID = @TeacherID) OR (@TeacherID = -1) read more 并通过@TeacherID值= -1来选择所有教师 现在我担心演出了 你能告诉我是一个好的做法还是坏的? 非常感谢 解决方法 如果TeacherID被编入索引,并且您
我曾经写过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有关该主题的最终文章.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读