Я пытаюсь создать сценарий, который работал бы во всех БД и удалял строки из указанной c таблицы старше X месяцев. Scipt работает, но для большей стабильности я хотел бы добавить в него некоторые условия. Одно условие состоит в том, что он будет работать только тогда, когда в БД есть state_des c, например «ONLINE», если это не удается, я хотел бы зарегистрировать БД, которая не была обработана.
скрипт:
declare @result table ( servername sysname
, dbname sysname
, rows_deleted numeric(15, 0)
)
insert into @result
exec sp_MSforEachDB
'if ''?'' like ''DB_%''
begin
-- delete all rows older then 13 months
Delete
from ?..TABLE1
where timestamp < DATEADD(month, -6, CAST(CURRENT_TIMESTAMP AS DATE));
-- display result
Select @@ServerName
, ''?'' as dbname
, @@rowcount as rows_deleted
end'
select * from @result