群集唯一和排序索引
索引可以具有多个特征,可以在创建时设置,也可以通过更改现有索引来设置。
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 服务器中)是升序,但可以更改。