63 - Regenerar índices |
Un profesor guarda algunos datos de sus alumnos en una tabla llamada "alumnos". 1- Elimine la tabla si existe y créela con la siguiente estructura: if object_id('alumnos') is not null drop table alumnos; create table alumnos( legajo char(5) not null, documento char(8) not null, apellido varchar(30), nombre varchar(30), notafinal decimal(4,2) ); 2- Cree un índice no agrupado para el campo "apellido". 3- Vea la información de los índices de "alumnos". 4- Modifíquelo agregando el campo "nombre". 5- Verifique que se modificó: exec sp_helpindex alumnos; 6- Establezca una restricción "unique" para el campo "documento". 7- Vea la información que muestra "sp_helpindex": sp_helpindex alumnos; 8- Intente modificar con "drop_existing" alguna característica del índice que se creó automáticamente al agregar la restricción "unique": create clustered index UQ_alumnos_documento on alumnos(documento) with drop_existing; No se puede emplear "drop_existing" con índices creados a partir de una restricción. 9- Cree un índice no agrupado para el campo "legajo". 10- Muestre todos los índices: sp_helpindex alumnos; 11- Convierta el índice creado en el punto 9 a agrupado conservando las demás características. 12- Verifique que se modificó: exec sp_helpindex alumnos; 13- Intente convertir el índice "I_alumnos_legajo" a no agrupado: create nonclustered index I_alumnos_legajo on alumnos(legajo) with drop_existing; No se puede convertir un índice agrupado en no agrupado. 14- Modifique el índice "I_alumnos_apellido" quitándole el campo "nombre". 15- Intente convertir el índice "I_alumnos_apellido" en agrupado: create clustered index I_alumnos_apellido on alumnos(apellido) with drop_existing; No lo permite porque ya existe un índice agrupado. 16- Modifique el índice "I_alumnos_legajo" para que sea único y conserve todas las otras características. 17- Verifique la modificación: sp_helpindex alumnos; 18- Modifique nuevamente el índice "I_alumnos_legajo" para que no sea único y conserve las demás características. 19- Verifique la modificación: sp_helpindex alumnos;Ver solución
if object_id('alumnos') is not null drop table alumnos; create table alumnos( legajo char(5) not null, documento char(8) not null, apellido varchar(30), nombre varchar(30), notafinal decimal(4,2) ); create nonclustered index I_alumnos_apellido on alumnos(apellido); sp_helpindex alumnos; create nonclustered index I_alumnos_apellido on alumnos(apellido,nombre) with drop_existing; exec sp_helpindex alumnos; alter table alumnos add constraint UQ_alumnos_documento unique nonclustered (documento); sp_helpindex alumnos; create clustered index UQ_alumnos_documento on alumnos(documento) with drop_existing; create nonclustered index I_alumnos_legajo on alumnos(legajo); sp_helpindex alumnos; create clustered index I_alumnos_legajo on alumnos(legajo) with drop_existing; exec sp_helpindex alumnos; create nonclustered index I_alumnos_legajo on alumnos(legajo) with drop_existing; create nonclustered index I_alumnos_apellido on alumnos(apellido) with drop_existing; create clustered index I_alumnos_apellido on alumnos(apellido) with drop_existing; create unique clustered index I_alumnos_legajo on alumnos(legajo) with drop_existing; sp_helpindex alumnos; create clustered index I_alumnos_legajo on alumnos(legajo) with drop_existing; sp_helpindex alumnos;