-1

У меня мало сомнений в SQL-сервере.как удалить записи таблицы на основе условий в sql-сервере

У меня есть 3 базы данных, и каждая база данных содержит несколько таблиц:

database1 имеет таблицы test, test1, test2.

database2 имеет таблицы sa, sa1.

database3 имеет некоторые таблицы, такие как emp, dept, loc.

На основе этих баз данных, я хочу усечь данные таблицы в зависимости от условий:

  1. Текущий день Thursday и время 6:40PM затем обрезает database1 связанные данные таблицы
  2. Текущий день Friday и время 12:00AM затем truncate database2 данные связанных таблиц.
  3. Текущий день Saturday и время 3:20AM затем обрезается database3 данные связанных таблиц.

Я попытался как:

select 
    case when datename(dw,getdate())='Thrusday' and RIGHT(CONVERT(varchar,getdate() ,100), 6) AS [Time]='6:40PM' 
    then 
     truncate table database1.dbo.test 
end 

Но это не дает правильный результат.

Пожалуйста, расскажите, как достичь этой задачи на SQL-сервере.

+0

Я хотел бы ответить на ваш вопрос. Но я не хочу сначала его декодировать –

ответ

0

Я думаю, что вам нужно создать несколько рабочих мест SQL Agent для достижения своей цели. Например, создайте задание, которое начинается каждый четверг в 18:40. В задании вы можете добавить SQL-шаг, который усекает \ удалять соответствующие данные.

Если ваш сервер является экспресс-версией, а Агент не установлен, вы должны использовать планировщик стандартного окна для выполнения процесса, который соединяется с базой данных и выполняет соответствующие инструкции.

Смежные вопросы