Индексирование с использованием функции UPPER в SQL Server - PullRequest
1 голос
/ 17 апреля 2019

Я пытаюсь создать индексы, используя liquibase, используя следующий запрос в SQL Server.

CREATE NONCLUSTERED INDEX LASTNAME_IDX ON EMPLOYEE(UPPER(LAST_NAME));

Но я получаю сообщение об ошибке при работе с жидкой основой Это хорошо работает в оракуле. Дайте мне знать, если есть способ создать индекс в SQL Server

1 Ответ

7 голосов
/ 17 апреля 2019

SQL Server не поддерживает индексы функций, которые поддерживает Oracle. Один из обходных путей здесь - создать вычисляемый столбец в верхнем регистре, а затем индексировать это:

ALTER TABLE EMPLOYEE ADD LAST_NAME_UPPER AS UPPER(LAST_NAME);
CREATE NONCLUSTERED INDEX last_name_idx ON EMPLOYEE(LAST_NAME_UPPER);
...