2013-04-08 17 views
6

Ho un indice cluster su una tabella indicizzata sulla colonna text. Voglio passare a quella colonna con una colonna diversa come ID, come posso modificare l'indice?Modifica della colonna indice cluster

Non riesco a rilasciare e ricreare perché è in esecuzione su Azure e la tabella deve disporre di indice cluster in ogni momento.

Il comando SQL e la sintassi per la modifica delle colonne dell'indice in un indice.

alter indice?

+0

Cant si aggiunge un nuovo indice cluster sulla colonna desiderata, e poi cadere il vecchio? –

+0

@AjoKoshy: no - puoi ** mai ** avere più di un indice cluster su un tavolo! –

risposta

5

Non è possibile modificare un indice cluster.

L'unica opzione è di rilasciarlo e ricrearlo con la nuova colonna.

Nel tuo caso, probabilmente dovrai ricreare la tabella con il nuovo indice cluster su ID e quindi copiare i dati.

9

Prova questo:

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

Non ha funzionato per me: messaggio 1907, livello 16, stato 1, riga 1 Impossibile ricreare l'indice 'my_index_name'. La nuova definizione dell'indice non corrisponde al vincolo applicato dall'indice esistente. –

+1

La mia ipotesi è che il tuo indice cluster sia anche una chiave primaria. In tal caso, è necessario eliminare e ricreare. –

+1

Funziona alla grande con gli indici in cluster no sulla chiave primaria. Grazie! – kspearrin

Problemi correlati