2012-08-24 135 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