0

Is there a way to automatically delete a row 24 hours after its creation in Transact-SQL?

I'm making a site (learning experience) where the user needs to click a validation link sent by e-mail once they register. I want the users to validate themselves within 24 hours.

I suppose what I'd need is a trigger, but I'm really not sure on the syntax, nor if it is even possible.

4

2 に答える 2

17

I'm not sure of your schema but I would do it a different way. I would have a date/time against the database record that corresponds to the validation link. When they click the link, verify that the date and time of the database record is within 24 hours of the current time. If so, allow it, otherwise reject it.

于 2012-12-22T23:55:08.853 に答える
2

Q:Transact-SQLで作成してから24時間後に行を自動的に削除する方法はありますか?

A:もちろんです。「sqlcmd」スクリプトを記述し、それを.batファイルでラップして、Windowsのスケジュールされたタスクから呼び出します。

または、バージョンに応じて、SQLServerエージェントから同じSQLスクリプトをスケジュールすることもできます。

物事に別のスピンをかける:

  • ユーザーがリンクをクリックすると、現在の時刻(MSSQLに関して)が>>24時間であるかどうかを確認できます。その場合は、(エントリを検証するのではなく)「遅すぎます」というメッセージで返信します。

いずれにせよ、あなたは絶対に、完全に、完全に、トリガーを使いたくないのです!

于 2012-12-22T23:59:43.683 に答える