2012-12-22 2 views
0

Есть ли способ автоматически удалить строку через 24 часа после ее создания в Transact-SQL?Удалить запись через 24 часа после вставки

Я создаю сайт (опыт обучения), где пользователю нужно щелкнуть ссылку проверки, отправленную по электронной почте после регистрации. Я хочу, чтобы пользователи проверяли себя в течение 24 часов.

Я полагаю, что мне нужен триггер, но я действительно не уверен в синтаксисе, и даже если это возможно.

ответ

17

Я не уверен в вашей схеме, но я бы сделал это по-другому. У меня будет дата/время в отношении записи базы данных, которая соответствует ссылке проверки. Когда они нажимают на ссылку, убедитесь, что дата и время записи базы данных находятся в пределах 24 часов от текущего времени. Если это так, разрешите это, иначе отклоните его.

+2

+1. Для решения реальной проблемы, а не для решения проблемы. –

+3

примечание: маркировка строки как недействительной позволяет вам сообщить людям, что «эта ссылка истекло» (если она истек) или «эта ссылка недействительна» (если она не существует). Я предполагаю, что вы используете какой-то уникальный ключ, такой как GUID, чтобы люди не могли угадать маркер сброса. –

+2

Даже не нужно было бы отмечать строку как недействительную. Вы можете определить срок действия по дате/времени. – Lock

2

В: Есть ли способ автоматически удалить строку через 24 часа после ее создания в Transact-SQL?

A: Конечно. Написать «Sqlcmd» сценарий, заверните его в файл .bat, и вызывать его из Windows, Назначенные задания:

В качестве альтернативы, в зависимости от версии, вы можете запланировать один и тот же сценарий SQL от агента SQL Server:

Обрамление разные вращение на вещах:

  • Когда пользователь нажимает на вашу ссылку, вы можете проверить, является ли текущее время (по отношению к MSSQL) >> 24 часами. Если это так, вы ответите сообщением «Слишком поздно» (а не подтвердите ввод).

В любом случае - вы абсолютно, совершенно, полностью, сделать НЕ хочу использовать триггер!

+0

Почему я не хочу использовать триггеры? Неужели они настолько злы, что их нужно отбросить в угол, чтобы их можно было забыть? – Netfangled

+0

Нет. Но они так злы, как решение этой проблемы, вы должны бросить дом на эту идею (например, Дороти сделала с Злой ведьмой Востока в «Волшебнике из страны Оз»);) Триггеры отлично подходят для некоторые проблемы ... и смешно для этого. * Правильное * решение должно действовать, когда пользователь нажимает на ссылку (как я предложил в своем сообщении). ИМХО... – paulsm4

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