群集唯一和排序索引
索引可以具有多個特徵,可以在建立時設定,也可以通過更改現有索引來設定。
CREATE CLUSTERED INDEX ix_clust_employee_id ON Employees(EmployeeId, Email);
上面的 SQL 語句在 Employees 上建立一個新的聚簇索引。聚簇索引是指示表的實際結構的索引; 表本身被排序以匹配索引的結構。這意味著表上最多只能有一個聚簇索引。如果表上已存在聚簇索引,則上述語句將失敗。 (沒有聚簇索引的表也稱為堆。)
CREATE UNIQUE INDEX uq_customers_email ON Customers(Email);
這將為表 Customers 中的列 Email 建立唯一索引。此索引以及加速查詢(如普通索引)也會強制該列中的每個電子郵件地址都是唯一的。如果使用非唯一的電子郵件值插入或更新行,則預設情況下插入或更新將失敗。 ** **
CREATE UNIQUE INDEX ix_eid_desc ON Customers(EmployeeID);
這將在 Customers 上建立一個索引,該索引還會建立一個表約束,EmployeeID 必須是唯一的。 (如果列當前不是唯一的,則會失敗 - 在這種情況下,如果有員工共享 ID。)
CREATE INDEX ix_eid_desc ON Customers(EmployeeID Desc);
這將建立一個按降序排序的索引。預設情況下,索引(至少在 MSSQL 伺服器中)是升序,但可以更改。