Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Реорганизация индексов


Автор: Стогелитская 28.4.2017, 12:23
Здравствуйте, у меня есть два вопроса скажите как связать две команды ALTER через if/else и как поставить так, чтобы запрос работал допустим 20-го числа в 20 вечера?

select a.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID(), OBJECT_ID(N'[dbo].[Manh_LOT]'), NULL, NULL, NULL) AS a
if avg_fragmentation_in_percent>=30.0
then ALTER INDEX Manh_LOT_DATE_TIME_STAMP ON [dbo].Manh_LOT REBUILD WITH (FILLFACTOR = 90, SORT_IN_TEMPDB = ON);
else ALTER INDEX Manh_LOT_DATE_TIME_STAMP ON [dbo].Manh_LOCATION REORGANIZE
end;

Подскажите, пожалуйста, по синтаксису, сейчас этот скрипт с ошибками, как связать if/else с alter и как написать, чтобы он выполнялся в определенное время без планировщика заданий.

У меня есть две команды 
--Перестроение
ALTER INDEX Manh_LOT_DATE_TIME_STAMP ON [dbo].Manh_LOT REBUILD WITH (FILLFACTOR = 90, SORT_IN_TEMPDB = ON);
GO
--Реорганизация
ALTER INDEX Manh_LOT_DATE_TIME_STAMP ON [dbo].Manh_LOCATION REORGANIZE
GO

их нужно связать в одну через if/else или мб нужно использовать case?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)