SQL:重新索引/重建整个数据库

SQL:重新索引/重建整个数据库

我厌倦了重新索引/重建我拥有的每个表,有没有办法对整个数据库执行此操作?

答案1

最简单的方法是使用其他人的维护脚本。 Ola Hallengren 的是最知名且免费的,但是Minion Ware 还有一个免费的重新索引脚本

如果由于某种原因你不能这样做,那么下面的方法可能会有效:

Use YourDB

Declare @TBname nvarchar(255),
        @SQL nvarchar(max) 


select @TBname = min(TABLE_NAME) from INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'

while @TBname is not null

BEGIN
    set @SQL='ALTER INDEX ALL ON [' + @TBname + '] REBUILD;'
    --print @SQL
    EXEC SP_EXECUTESQL @SQL
    select @TBname = min(TABLE_NAME) from INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' and TABLE_NAME > @TBname          
END

相关内容