0

私は次の表を持っています

event_ID      Int,
Start_Date    Date,
End_Date      Date,

次の列を含む永続的なカレンダー テーブルを作成したい

calender_ID,
Event_ID,
Event_Date,

Event_Dateの間のすべての日付をリストしたいStart_dateEnd_Date

Visual Studio で SQL Server Express 2008 を使用しています

あらゆる種類の助けに感謝します

ハマム

4

1 に答える 1

0

まず、この SO スレッドに記載されている「ExplodeDates」のような関数を作成します。 #1378788

次に、イベント テーブルとカレンダー テーブルの同期を維持する予定のストアド プロシージャ/トリガーでは、基本的に次のようなことを行うだけです。

DELETE FROM CalenderTable WHERE Event_ID=@EventID

INSERT INTO CalenderTable (Event_ID, Event_Date)
SELECT Event.Event_ID, Dates.TheDate
FROM Event
CROSS APPLY ExplodeDates(Event.Start_Date, Event.End_Date) Dates
WHERE Event.Event_ID=@EventID

このマシンには SQL がないため、これをテストする機会がありませんでした。微調整が必​​要かもしれませんが、これで少なくとも実行可能なパスをたどることができるはずです...

于 2012-05-20T14:10:09.157 に答える