Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Неверное предложение для фильтруемого индекса  [new]
Andret
Member

Откуда: Киев
Сообщений: 84
Хочу создать фильтруемый индекс. Но вот в теле фильтра он не дает использовать битовые выражения. Сообщение об ошибке такое как в теме.
Вот грубый пример:

create index IX_Documents_On
on	dbo.Documents (doc_id)
where	doc_status & 1 = 1

Не подскажут ли уважаемые коллеги в чем дело, так как вырожение вполне детерминируемое, а про битовые ограничения в справке я ничего не нашел :(
Может есть какие решения?
6 авг 11, 13:41    [11080334]     Ответить | Цитировать Сообщить модератору
 Re: Неверное предложение для фильтруемого индекса  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
а битовые выражения, как таковые, тут вовсе и не причем.
вы внимательно прочитали в справке, что может быть предикатом фильтра?
BOL
<filter_predicate> ::=
<conjunct> [ AND <conjunct> ]

<conjunct> ::=
<disjunct> | <comparison>

<disjunct> ::=
column_name IN (constant ,...n)

<comparison> ::=
column_name <comparison_op> constant

<comparison_op> ::=
{ IS | IS NOT | = | <> | != | > | >= | !> | < | <= | !< }

как можно видеть, слева только имя столбца можно указывать. ни о каких выражениях с ним речи нет - хоть битовых, хоть каких других.
да, собственно, и справа только константы могут быть (еще, правда, допускается применять к ним cast/convert).
6 авг 11, 14:25    [11080459]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить