在MSSql中,如下幾種狀況下會使索引列無效:函數
1.在索引列上用了函數,如 Where ABS(Dep_Name)='Name' ,此時列Dep_Name的索引無效索引
2.在索引表上用了Like '%XXX',但若是把%放在索引列的最後面就能夠,即 Dep_Name like 'the name %',此時的索引是有效的table
3.在Where子句中對列進行了類型轉換,即用Cast或Convert會使列的索引無效。ast
4.用到In關鍵字,但並非全部用到In的關鍵字就會使索引無效,以下:select
Select * from Table Where Depart_ID in ('aaaa','bbbb'),此時這個 Depart_ID上的索引是有效的。tab
若是In後面使用嵌套的SELECT語句,將沒法使用在該列上定義的索引,如類型轉換
select * from Table where Depart_ID in (select depart_ID from table2)ab
此時Depart_ID對應的索引將無效。