2013-04-08 224 views
6

我在text列的索引表上有聚簇索引。我想用不同的列切換該列,如ID,如何更改索引?改變聚簇索引列

我無法刪除並重新創建,因爲它在Azure上運行,並且表需要始終具有聚簇索引。

SQL命令和用於更改索引中索引列的語法。

改變索引?

+0

廣東話你所要求的列上添加一個新的聚集索引,然後刪除舊的嗎? – 2013-04-08 06:26:49

+0

@AjoKoshy:不 - 你可以**從不**在桌子上有多個聚簇索引! – 2013-04-08 06:28:02

回答

5

您無法更改聚集索引。

唯一的選擇是刪除它並用新列重新創建它。

就你而言,你可能不得不用ID上的新聚簇索引重新創建表格,然後複製數據。

9

試試這個:

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

它沒有爲我工作: Msg 1907,級別16,狀態1,行1 無法重新創建索引'my_index_name'。新的索引定義與現有索引強制執行的約束不匹配。 – 2014-08-28 17:13:26

+1

我的猜測是你的聚集索引也是一個主鍵。在這種情況下,你需要刪除並重新創建。 – 2014-08-28 17:14:54

+1

這對於主鍵上的聚簇索引no很有效。謝謝! – kspearrin 2015-03-09 15:43:56