CREATE [UNIQUE] [CLUSTERED |NONCLUSTERED] INDEX index_nameON (столбец [ASC | DESC] [, ... n])[ВКЛЮЧИТЬ (имя столбца [, ... n])] [ГДЕ <filter_predicate>
] [WITH ([, ... n])][ON {имя_раздела_символа (имя столбца)|filegroup_name|дефолт}][FILESTREAM_ON {filestream_filegroup_name |имя_раздела_схемы |"НОЛЬ" } ][;]
WHERE <filter_predicate>
Создает отфильтрованный индекс, указывая, какие строки включить в индекс.Отфильтрованный индекс должен быть некластеризованным индексом в таблице.Создает отфильтрованную статистику для строк данных в отфильтрованном индексе.
Предикат фильтра использует простую логику сравнения и не может ссылаться на вычисляемый столбец, столбец UDT, столбец типа пространственных данных или столбец типа данныхierarchyID.Сравнения с использованием литералов NULL недопустимы с операторами сравнения.Вместо этого используйте операторы IS NULL и IS NOT NULL.
Вот несколько примеров предикатов фильтра для таблицы Production.BillOfMaterials:
WHERE StartDate> '20040101' AND EndDate <= '20040630'</p>
ГДЕ ComponentID IN (533, 324, 753)
ГДЕ StartDate IN ('20040404', '20040905') И EndDate NOT NULL
Фильтрованные индексы не применяютсяв XML-индексы и полнотекстовые индексы.Для уникальных индексов только выбранные строки должны иметь уникальные значения индекса.Отфильтрованные индексы не допускают использование параметра IGNORE_DUP_KEY.