
Resumen: en este tutorial, aprenderás a usar la instrucción DROP INDEX de SQL Server para eliminar índices existentes.
Descripción general de la instrucción DROP INDEX de SQL Server
La instrucción DROP INDEX
elimina uno o más índices de la base de datos actual. Esta es la sintaxis de la instrucción DROP INDEX
:
DROP INDEX [IF EXISTS] index_name
ON table_name;
En esta sintaxis:
- Primero, debes especificar el nombre del índice que deseas eliminar después de la cláusula
DROP INDEX
. - En segundo lugar, debes especificar el nombre de la tabla a la que pertenece el índice.
Eliminar un índice que no existe te dará como resultado un error. Sin embargo, puedes usar la opción IF EXISTS
para descartar condicionalmente el índice y evitar el error.
Ten en cuenta que la opción IF EXISTS
solo está disponible desde SQL Server 2016 (13.x) en adelante.
La instrucción DROP INDEX
no elimina los índices creados con restricciones PRIMARY KEY o UNIQUE. Para descartar índices asociados con estas restricciones, debes utilizar la instrucción ALTER TABLE DROP CONSTRAINT
.
Para eliminar varios índices de una o más tablas al mismo tiempo, debes especificar una lista de nombres de índice separados por comas con los nombres de tabla correspondientes después de la cláusula DROP INDEX
, como se muestra en la siguiente consulta:
DROP INDEX [IF EXISTS]
index_name1 ON table_name1,
index_name2 ON table_name2,
...;
Ejemplos de instrucciones DROP INDEX de SQL Server
Usaremos la tabla sales.customers de la base de datos de ejemplo.
La siguiente imagen muestra los índices de la tabla sales.customers:
A) Ejemplo: usar DROP INDEX de SQL Server para eliminar un índice
Este código utiliza la instrucción DROP INDEX
para eliminar el índice ix_cust_email
de la tabla sales.customers:
DROP INDEX IF EXISTS ix_cust_email
ON sales.customers;
Si revisas los índices de la tabla sales.customers, verás que se eliminó el índice ix_cust_email
.
B) Ejemplo: eliminar varios índices con DROP INDEX de SQL Server
El siguiente ejemplo usa la instrucción DROP INDEX
para eliminar los índices ix_cust_city
, ix_cust_fullname
de la tabla sales.customers:
DROP INDEX
ix_cust_city ON sales.customers,
ix_cust_fullname ON sales.customers;
La tabla sales.customers ahora no tiene un índice:
En este tutorial, aprendiste a usar la instrucción DROP INDEX
de SQL Server para eliminar uno o varios índices de una tabla.