SQL Server 关键字

SQL Server (Transact-SQL) INDEX 关键字用于在表上创建索引。索引对于更快地从数据库检索数据并加快搜索查询很有用。索引对最终用户不可见。除此之外,与没有任何索引的表相比,更新带有索引的表需要更多时间,因为索引会被更新。因此,建议仅在经常搜索的列上创建索引。

INSERT 和 UPDATE 语句在具有索引的表上花费更多时间,而 SELECT 语句在这些表上会变得更快。原因是在执行插入或更新操作时,数据库也会更新索引。

SQL Server 创建索引

除了常规索引之外,还可以在table上创建唯一索引。唯一索引与SQL中的主键相同。唯一索引指示索引列中的值的组合必须是唯一的。唯一索引用于维护表中数据的完整性以及快速性能。

语法

在 SQL Server 中使用 CREATE INDEX 语句的语法(Transact-SQL) 如下:

/* 允许的重复组合索引列中的值 */
CREATE INDEX index_name
ON table_name (column1, column2, ...);

/* 仅允许的唯一组合索引列中的值 */
CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...); 

SQL Server 创建索引 示例

下面提到的语句在 Employee 的 Name 列上创建索引 表。

CREATE INDEX idx_name
ON Employee (Name); 

在表(Employee)的多个列(Name 和 EmpID)上创建索引),可以使用以下语句:

CREATE INDEX idx_nameid
ON Employee (Name, EmpID); 

要在Employee表的EmpID列上创建唯一索引,语句下面提到:

CREATE UNIQUE INDEX idx_empid
ON Employee (EmpID); 

在表 () 的多个列 (Name 和 EmpID) 上创建唯一索引Employee),语句如下:

CREATE UNIQUE INDEX idx_empid
ON Employee (Name, EmpID); 

SQL Server 删除索引

SQL Server DROP INDEX 语句用于删除表上的索引。

语法

在 SQL Server (Transact-SQL) 中使用 DROP INDEX 语句的语法如下:

/* 方法1 */
DROP INDEX index_name ON table_name;

/* 方法2 */
ALTER TABLE table_name
DROP INDEX index_name;

/* 方法3 */
DROP INDEX table_name.index_name;

/* 方法4 */
DROP INDEX index_name; 

SQL Server 删除索引示例

考虑一个名为 Employee 的表,其中包含名为 idx_name 的索引。要删除该索引,可以使用以下语句:

/* 方法1 */
DROP INDEX idx_name ON Employee;

/* 方法2 */
ALTER TABLE Employee
DROP INDEX idx_name;

/* 方法3 */
DROP INDEX Employee.idx_name;

/* 方法4 */
DROP INDEX idx_name;