SQL: переиндексировать / перестроить всю базу данных

Я устал переиндексировать / перестраивать каждую имеющуюся у меня таблицу. Есть ли способ сделать это для всей базы данных?

0
задан 9 November 2016 в 18:00
1 ответ

Самый простой способ сделать это - использовать кого-нибудь другие сценарии обслуживания. Ola Hallengren's - самые известные и бесплатные, но 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
0
ответ дан 24 November 2019 в 05:27

Теги

Похожие вопросы