現定在的信息社會,大量的數據信息被使用,在數據庫中運用索引可快速訪問數據庫表中的特定信息,所以了解數據庫中創建索引的方法變得尤為重要。
為給定表或視圖創建索引。
只有表或視圖的所有者才能為表創建索引。表或視圖的所有者可以隨時創建索引,無論表中是否有數據。可以通過指定限定的數據庫名稱,為另一個數據庫中的表或視圖創建索引。語法
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON { table | view } ( column [ ASC | DESC ] [ ,...n ] )
[ WITH < index_option > [ ,...n] ]
[ ON filegroup ]< index_option > ::=
{ PAD_INDEX |
FILLFACTOR = fillfactor |
IGNORE_DUP_KEY |
DROP_EXISTING |
STATISTICS_NORECOMPUTE |
SORT_IN_TEMPDB
}參數
UNIQUE為表或視圖創建唯一索引(不允許存在索引值相同的兩行)。視圖上的聚集索引必須是 UNIQUE 索引。在創建索引時,如果數據已存在,Microsoft? SQL Server? 會檢查是否有重復值,並在每次使用 INSERT 或 UPDATE 語句添加數據時進行這種檢查。如果存在重復的鍵值,將取消 CREATE INDEX 語句,並返回錯誤信息,給出第一個重復值。當創建 UNIQUE 索引時,有多個 NULL 值被看作副本。如果存在唯一索引,那麼會產生重復鍵值的 UPDATE 或 INSERT 語句將回滾,SQL Server 將顯示錯誤信息。即使 UPDATE 或 INSERT 語句更改了許多行但只產生了一個重復值,也會出現這種情況。如果在有唯一索引並且指定了 IGNORE_DUP_KEY 子句情況下輸入數據,則只有違反 UNIQUE 索引的行才會失敗。在處理 UPDATE 語句時,IGNORE_DUP_KEY 不起作用。SQL Server 不允許為已經包含重復值的列創建唯一索引,無論是否設置了 IGNORE_DUP_KEY。如果嘗試這樣做,SQL Server 會顯示錯誤信息;重復值必須先刪除,才能為這些列創建唯一索引。CLUSTERED創建一個對象,其中行的物理排序與索引排序相同,並且聚集索引的最低一級(葉級)包含實際的數據行。一個表或視圖只允許同時有一個聚集索引。具有聚集索引的視圖稱為索引視圖。必須先為視圖創建唯一聚集索引,然後才能為該視圖定義其它索引。在創建任何非聚集索引之前創建聚集索引。創建聚集索引時重建表上現有的非聚集索引。如果沒有指定 CLUSTERED,則創建非聚集索引。 說明 因為按照定義,聚集索引的葉級與其數據頁相同,所以創建聚集索引時使用 ON filegroup 子句實際上會將表從創建該表時所用的文件移到新的文件組中。在特定的文件組上創建表或索引之前,應確認哪些文件組可用並且有足夠的空間供索引使用。文件組的大小必須至少是整個表所需空間的 1.2 倍,這一點很重要。
以上就是精品為您准備的關於數據庫中創建索引的信息,希望對您的生活工作有幫助,祝您生活愉快。