2012-08-24 175 views
0

如何在插入時創建具有可能性ROUND值的觸發器?插入時觸發

這觸發不工作:(

CREATE TRIGGER test 
    ON repaymentevents 
    AFTER INSERT 
AS 
BEGIN 
    SELECT round(value, 2) FROM Inserted 
END 
+0

歡迎StackOverflow上:如果您發佈的代碼,XML或數據樣本,** **請在高亮文本編輯器的線路,然後點擊編輯器工具欄上的「代碼示例」按鈕('{}')來很好的格式和語法突出顯示它! –

+3

所以,你想讓你的觸發器做一個'SELECT'而沒有別的?爲什麼你會這樣做? – Lamak

+0

對不起,沒有看到。 – Fara

回答

1

正如@marc_s說,我認爲你需要一個INSTEAD OF觸發:

CREATE TRIGGER test 
    ON repaymentevents 
    INSTEAD OF INSERT 
AS 
BEGIN 
    INSERT INTO repaymentevents 
    SELECT round(SomeValue, 2) FROM Inserted 
END 

Here is an example.

+0

非常感謝,但爲什麼在sql(1 row(s)affected)顯示2次?在sql上只有1條記錄。 – Fara

+0

@Fara - 你是什麼意思?,這是什麼時候發生的? – Lamak

+0

創建觸發器後,我測試它。當我插入記錄表與SQL Management Studio中顯示的消息「(1列(S)的影響)」 2次劇本,但在SQL插入1次。對不起我的英語不好。 – Fara

0

這是你需要什麼?這是空碼,很明顯,我無法測試,因爲我沒有你的表,但希望你的想法。

CREATE TRIGGER test 
    ON repaymentevents 
    AFTER INSERT 
AS 
BEGIN 
    UPDATE repaymentevents 
    INNER 
     JOIN INSERTED I 
     ON I.id = repaymentevents.id 
     SET value = round(i.value, 2) 
END