que seleccionar una serie de índices no agrupados de mi base de datos con la siguiente:Desactivar todos los índices no agrupados
SELECT sys.objects.name tableName,
sys.indexes.name indexName
FROM sys.indexes
JOIN sys.objects ON sys.indexes.object_id = sys.objects.object_id
WHERE sys.indexes.type_desc = 'NONCLUSTERED'
AND sys.objects.type_desc = 'USER_TABLE'
me gustaría ejecutar el siguiente sobre cada uno de los resultados:
ALTER INDEX indexName ON tableName DISABLE
¿Cómo voy a hacer esto? ¿Hay una mejor manera?
EDITAR
que estoy haciendo esto con el fin de truncar las tablas, a continuación, la reconstrucción con "ALTER bla índice en la tabla RECONSTRUIR". Esto necesita ser automatizado, por lo que descartar y reconstruir sería una actividad de mantenimiento algo mayor que preferiría evitar. ¿Es este un mal plan? Necesito un medio para vaciar mesas con un mínimo de gastos generales.
Es mejor que los dejes caer ya que no hay ALTER INDEX ENABLE, tendrían que ser recreados. No se mantendrán si están deshabilitados. –
Si se descarta, pierde las definiciones y tendrá que recordarlas si (cuando) necesita recrearlas. Si está deshabilitado, las definiciones se mantendrán en las tablas del sistema y no tendrá que preocuparse por volver a crearlas desde cero. –
@jl puede volver a habilitar el índice utilizando ALTER INDEX REBUILD. – kristianp