6

Mam indeks klastrowany na indeksowanie tabela w kolumnie text. Chcę zmienić tę kolumnę za pomocą innej kolumny, takiej jak ID, w jaki sposób mogę zmienić indeks?Alter klastrowany kolumna indeksu

Nie mogę usunąć i ponownie utworzyć, ponieważ działa na platformie Azure, a tabela musi cały czas mieć indeks klastrowy.

Polecenie SQL i składnia do zmiany kolumn indeksu w indeksie.

zmień indeks?

+0

nie można dodać nowego indeksu klastrowego od wymaganej kolumny, a następnie spadek stary? –

+0

@AjoKoshy: no - możesz ** nigdy ** mieć więcej niż jeden indeks klastrowany na stole! –

Odpowiedz

5

Nie można zmienić indeksu klastrowego.

Jedyną opcją jest upuszczenie go i ponowne utworzenie w nowej kolumnie.

W twoim przypadku prawdopodobnie będziesz musiał ponownie utworzyć tabelę z nowym indeksem klastrowym pod numerem ID, a następnie skopiować dane.

9

Spróbuj tego:

create clustered index [your_index_name] 
on [your_table] 
    ([ID]) 
with (drop_existing = on) 
+0

To nie zadziałało dla mnie: Msg 1907, poziom 16, Stan 1, Wiersz 1 Nie można odtworzyć indeksu "moja_indeks". Nowa definicja indeksu nie pasuje do ograniczenia egzekwowanego przez istniejący indeks. –

+1

Domyślam się, że indeks klastrowany jest również kluczem podstawowym. W takim przypadku musisz upuścić i ponownie utworzyć. –

+1

Działa to doskonale z indeksami klastrowanymi no na klucz podstawowy. Dzięki! – kspearrin