2

日付に従ってデータベースを自動更新する方法は?

Message ID |   Message   |    StartDate   |   EndDate    | Status
     1     |    Hello    |    07/7/2012   |   08/7/2012  | Expired 
     2     |      Hi     |    10/7/2012   |   12/7/2012  | Ongoing
     3     |   Hi World  |    11/7/2012   |   18/7/2012  | Pending 

今日の日付に従ってステータスを自動更新する方法は?

詳細情報: SQL-Server Management Studio を使用しています。記載せず申し訳ありません。

4

3 に答える 3

1

テーブルがそれ自体を更新する方法はないと思います。SQL Server でジョブをスケジュールすることを検討する必要があります。

こちらの MSDN 記事を参照してください。

ジョブは毎日実行され、各行が考慮され、必要に応じてステータスが更新されます。

于 2012-07-11T02:11:00.220 に答える
1

できる最善のことは、日時に基づいてテーブルのレコードを更新するストア プロシージャを作成し、SQL サーバー ジョブを作成して、実行する希望の時間にスケジュールすることです。

于 2012-07-11T02:11:43.810 に答える
1

EndDate > GETDATE()Sql Server のジョブを使用してスケジュールされているすべてのメッセージのステータスを「期限切れ」に設定する SP を作成します。

CREATE PROCEDURE UpdateMessages
AS

UPDATE Messages SET Status = 'Expired' WHERE EndDate > GETDATE()

GO
于 2012-07-11T02:13:49.827 に答える