domingo, 30 de noviembre de 2014

SHRINK clause should not be specified for this object

Mientras realizaba un mantenimiento de rutina a una BD y en una de las tareas ejecuto un shrink a una tabla a la cual se podía reclamar espacio, pero mi sorpres fue que me presentaba el siguiente error:

SHRINK clause should not be specified for this object

Hasta lo que sabia es que no podemos realizar shrink a tablas externas o que tengan una columna de tipo long. Lo unico que me percate es que la table tenia un índice basado en función y el shrink no lo soporta.

La solucion fue seguir los pasos siguientes:
  1. borrar el indice basado en función, 
  2. aplicar el shrink y 
  3. recrear el indice que borramos.
si el problema persiste, hay otra razones por la que que no puedas aplicar el shrink como:
  • Tablas  comprimida
  • Tablas contiene columnas long
  • Tablas organizada por indices
  • Tablas maestras de vistas materiralizada