Sql-Server

為什麼在少數列上啟用聚集索引屬性而不在其他列上啟用?

  • August 21, 2015

聽說只能有一個聚集索引?我可能是錯的,但我確定我在某個地方讀到過。

在我的 SQL Server 2005 表之一中,我有以下列:

SerialNum ——– BigInt ——– 主鍵

——– nvarchar(50)

SchemeType —— nvarchar(50)

當我使用 SQL Server Management Studio 在設計模式下打開表時,我注意到為District啟用了Clustered Index屬性,而為SchemeType禁用了它。

如果只能有一個聚集索引,那麼當SerialNum已經定義為主鍵時,為什麼 District 會啟用此屬性?

如果可以有更多聚集索引,那麼如何為SchemeType列啟用此屬性?

主鍵和聚集索引是兩個不同的東西,儘管它們經常結合使用。您的桌子以這種方式結束的幾個潛在原因:

(a) 它可以使用非聚集主鍵創建PRIMARY KEY NONCLUSTERED,然後添加聚集索引。

(b) 可能已經添加了聚集索引,然後添加了主鍵(在這種情況下,它不能被聚集,因為已經有聚集索引)。

其中任何一個都可能是故意的設計決策、事故、事後的變化等。

忽略 Management Studio 設計視圖中的屬性。聚集索引表,但它由指定的列定義。其他列在技術上仍然是聚集索引的一部分,它們只是不是索引中的鍵列。稱“啟用/禁用”具有誤導性。

引用自:https://dba.stackexchange.com/questions/5704