Поделиться через


Изменение индекса

В этом разделе описывается изменение индекса в SQL Server 2012 с помощью среды Среда SQL Server Management Studio или Transact-SQL.

Важное примечаниеВажно!

Индексы, созданные в результате применения ограничения PRIMARY KEY или UNIQUE, изменить этим способом нельзя. Вместо этого необходимо изменить ограничение.

В этом разделе

  • Для изменения индекса используется:

    Среда SQL Server Management Studio

    Transact-SQL

Использование среды SQL Server Management Studio

Изменение индекса

  1. В обозревателе объектов подключитесь к экземпляру компонента Компонент SQL Server Database Engine и разверните его.

  2. Разверните Базы данных, затем базу данных, которой принадлежит таблица, и Таблицы.

  3. Раскройте таблицу, которой принадлежит индекс, а затем — узел Индексы.

  4. Щелкните правой кнопкой мыши индекс, который нужно изменить, и выберите пункт Свойства.

  5. В диалоговом окне Свойства индекса внесите необходимые изменения. Например, можно добавить или удалить столбец из ключа индекса или изменить значение параметра индекса.

Изменение столбцов индекса

  • Чтобы добавить столбец индекса, удалить его или изменить его позицию, выберите в диалоговом окне Свойства индекса страницу Общие.

Значок стрелки, используемый со ссылкой «В начало»[Top]

Использование Transact-SQL

Изменение индекса

  1. Подключитесь к компоненту Компонент Database Engine.

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить. В этом примере индекс по столбцу ProductID таблицы Production.WorkOrder удаляется и создается вновь с помощью параметра DROP_EXISTING. Также указываются параметры FILLFACTOR и PAD_INDEX.

    USE AdventureWorks2012;
    GO
    CREATE NONCLUSTERED INDEX IX_WorkOrder_ProductID
        ON Production.WorkOrder(ProductID)
        WITH (FILLFACTOR = 80,
            PAD_INDEX = ON,
            DROP_EXISTING = ON);
    GO
    

    В следующем примере с помощью инструкции ALTER INDEX задаются несколько параметров для индекса AK_SalesOrderHeader_SalesOrderNumber.

    USE AdventureWorks2012;
    GO
    ALTER INDEX AK_SalesOrderHeader_SalesOrderNumber ON
        Sales.SalesOrderHeader
    SET (
        STATISTICS_NORECOMPUTE = ON,
        IGNORE_DUP_KEY = ON,
        ALLOW_PAGE_LOCKS = ON
        ) ;
    GO
    

Изменение столбцов индекса

  • Чтобы добавить, удалить или изменить позицию столбца индекса, необходимо удалить и повторно создать индекс.

См. также

Справочник

CREATE INDEX (Transact-SQL)

ALTER INDEX (Transact-SQL)

INDEXPROPERTY (Transact-SQL)

sys.indexes (Transact-SQL)

sys.index_columns (Transact-SQL)

Основные понятия

Установка параметров индекса

Переименование индексов