我厌倦了重新索引/重建我拥有的每个表,有没有办法对整个数据库执行此操作?
答案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