Member 11416690 Ответов: 1

Как удалить строку в SQL server автоматически через некоторое время(например, 10 минут)


у меня есть база данных со многими записями.когда я вставляю запись, это займет текущее время через некоторое время, например через 10 минут, запись должна быть удалена.как мы можем сделать любую помощь frds

Что я уже пробовал:

i have database with many recordswhen i am inserting a record it will take the current time after some time like 10 mins the record should be deleted.how we can do any help frds

[no name]

Создайте задание SQL, которое будет периодически выполняться и удалять записи с истекшим сроком действия.

1 Ответов

Рейтинг:
9

Wendelius

Создание работы - это одна из возможностей, примеры см. График работы[^] и Создание шага задания Transact-SQL[^ Однако имейте в виду, что этот подход не будет работать с Экспресс-выпусками, так как агент SQL для них отключен.

Но чтобы дать альтернативу, вы уверены, что хотите навсегда удалить записи? Гораздо более распространенным подходом является контроль достоверности записи. Другими словами, если он старше 10 минут, не извлекайте его, но пусть он все еще находится в базе данных. Простой способ добиться этого заключается в том, что у вас есть поле datetime, которое имеет текущее datetime по умолчанию в поле validity, и в вашей выборке вы исключаете строки, которые старше желаемого количества времени.

Рассмотреть следующее:

CREATE TABLE ValidityTest (
   col1 varchar(100),
   Created datetime DEFAULT GETDATE()
);

INSERT INTO ValidityTest (col1) VALUES ('Some row');

SELECT *
FROM ValidityTest 
WHERE Created >= DATEADD(minute, -10, GETDATE())

если вы хотите, вы можете сделать запрос проще, создав представление для запроса, например
CREATE VIEW ValidRows AS
SELECT *
FROM ValidityTest 
WHERE Created >= DATEADD(minute, -10, GETDATE());

Теперь вы можете легко запрашивать достоверные данные
SELECT * FROM ValidRows;
Если вам нравится, вы можете запускать очистку удаления каждый раз, чтобы удалить записи старше желаемого количества времени (например, месяцы), но пока пространство или скорость не являются проблемой, это не обязательно.