Muchas veces nos a pasado que necesitamos re-indexar todas las tablas de una base de datos del SQL Server y no encontramos un comando que lo haga. Bueno, hay una forma de hacerlo, especialmente si la base de datos tiene muchas tablas, creamos un script que obtiene sus nombres del diccionario de datos y ejecuta el comando DBCC REINDEX de SQL Server por cada una de ellas:
DECLARE @TableName varchar(200) DECLARE TableCursor CURSOR FOR SELECT TABLE_SCHEMA + '.' + TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' OPEN TableCursor FETCH NEXT FROM TableCursor INTO @TableName WHILE @@FETCH_STATUS = 0 BEGIN PRINT 'Reindexando ' + @TableName DBCC DBREINDEX (@TableName, '') WITH NO_INFOMSGS FETCH NEXT FROM TableCursor INTO @TableName END CLOSE TableCursor DEALLOCATE TableCursor
Espero que os sea de utilidad.
Si quieres más trucos de este tipo te invito a echarle un vistazo a este libro de SQL Server 2014 en Español
Comprar en Amazon |