2012-05-20 50 views
0

我有以下表SQL Server 2008 Express的日曆表

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

感謝任何形式的幫助

澡堂

回答

0

首先,創建想在這個SO主題提到的「ExplodeDates」功能:https://stackoverflow.com/questions/1378593/get-a-list-of-dates-between-two-dates-using-a-function/1378788#1378788

接下來,在存儲過程/觸發器你打算保持在同步事件和日曆表用,你本質上只是做一些這樣的:

DELETE FROM CalenderTable WHERE [email protected] 

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 [email protected] 

我沒有做這臺機器上的SQL,所以我沒有有機會對此進行測試。它可能需要一些調整,但這應該至少讓你走下一條可行的道路......