2010-10-06 153 views
0

我想編寫觸發器,插入記錄表的人後,我想從表中的人是PersonID =新插入ID表汽車創造新的紀錄:SQL服務器觸發

人: ID 名稱

汽車: ID 是PersonID // FK以人 名稱

感謝任何暗示,再見

+0

這聽起來像是你想要創建的代碼如此難以維護,以至於你的客戶/僱主永遠無法離開你。聰明的舉動! – erikkallen 2010-10-06 09:39:18

+0

我只是想知道如何創建觸發器的機制。它不是現實世界的例子:P – gruber 2010-10-06 10:20:30

+0

Ypu在哪裏可以看到我的axcept率? – gruber 2010-10-06 10:21:50

回答

2

所以,你會碰到這樣的:

CREATE TRIGGER trgAfterPersonInsert 
ON dbo.Person AFTER INSERT 
AS BEGIN 
    INSERT INTO dbo.Car(PersonID) 
     SELECT i.PersonID 
     FROM INSERTED i 
END 

要記住的重要一點是:如果你插入10人進入你的表在單個語句,您觸發器將被稱爲一次與「僞表」包含那十個人的INSERTED

所以你的觸發代碼需要設置感知 - 做不是假設觸發器被調用一次爲每一行 - 情況並非如此。

有關更多詳細信息,請參見MSDN docs for CREATE TRIGGER,並查看關於SQL Team的An Introduction To Triggers教程。