2012-08-24 70 views
0

我的要求一樣,我必須插入記錄每當一個BID,一個SID,如果execdatestopbilldate存在,那麼我需要插入新記錄與NULLStopbilldate 樣本示例如下:插入下一記錄

Sno BID  SID LID  Comapny Execdate StopBilldate 
5 BLDG100 C 6500 Cole 1/5/2012 5/29/2012 
6 BLDG100 C 000000 Vacant 5/30/2012 NULL 
+2

因此,爲了澄清您的問題,您正在尋找一種方法,每次爲某行填入「StopBilldate」時,需要爲相同的「BID」和「SID」創建一個新行,默認情況下值爲「LID」的「000000」,「公司」的「空值」,第二天在Execdate之前的值StopBillDate和StopBilldate中的值爲空。它是否正確?這可以通過觸發器來完成。 – Bridge

回答

1

您可以在桌上用TRIGGER做到這一點。觸發器是一種當事件發生時將執行的存儲過程。

這裏是你可以在你的桌子放在什麼樣:

CREATE TRIGGER [trg_yourTable] 
    ON [yourTable] 
    AFTER INSERT 
AS 
BEGIN 
    SET NOCOUNT ON; 

    -- Insert statements for trigger here 
    INSERT INTO yourTable (bid, sid, lid, company, execdate, stopbilldate) 
    SELECT i.bid, i.sid, 0, 'Vacant', DATEADD(day, 1, i.stopbilldate), null 
    FROM inserted i 
    WHERE i.bid is not null 
     and i.sid is not null 
END 

當你INSERT表中的數據,這將運行並INSERT您要添加到表的附加行。