Я устал переиндексировать / перестраивать каждую имеющуюся у меня таблицу. Есть ли способ сделать это для всей базы данных?
Самый простой способ сделать это - использовать кого-нибудь другие сценарии обслуживания. 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