Ежедневная задача SQL для удаления содержимого из таблицы - PullRequest
12 голосов
/ 01 октября 2010

Эй, мне было интересно, как я могу настроить задачу очистки определенной таблицы для удаления содержимого, скажем, недельного возраста.

Я использую SQL Server 2005

Ответы [ 2 ]

15 голосов
/ 01 октября 2010

В SQL Server Management Studio разверните агент SQL Server, щелкните правой кнопкой мыши «Задания» и выберите «Новое задание ...»

в разделе «Шаги», создайте «Новое ...»и введите это:

DELETE YourTable WHERE YourDate<GETDATE()-7

или без учета использования времени:

DELETE YourTable WHERE YourDate<DATEADD(day,DATEDIFF(day,0,GETDATE()-7),0)

в «Расписании», вы можете запустить его каждое воскресенье или все, что вам нужно.

3 голосов
/ 01 октября 2010

Вы можете создать задание, которое удаляет все, что старше недели.Например,

DELETE FROM MyTable
WHERE DateCreated <= dateadd(d, -7, getdate())

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

Затем вы можете запланировать выполнение задания, когда пользователи не подключены.

...