在一个DB中的两个不同模式表之间创建触发器?

时间:2014-01-24 17:37:16

标签: sql-server-2008 tsql triggers sql-server-2012

我一直在研究一个数据库,它包含两个模式名称作为前端和备份。在一个表名称中的位置:

front.Details

    studID SemID GPA
    100     1     4
    200     2     3

另一个表名是:

backup.DetailsV
studID  DEPT SemID GPA

我需要在Table前面创建一个触发器。详细说明当插入时所有行必须插入表backup.DetailsV两次使用deptC列两次。

表backup.DetailsV中的输出应如下所示:

studID  DEPT SemID GPA
100      1     1    4
200      1     2    3
100      2     1    4
200      2     2    3 

如何在表A上创建触发器以在dept id 1和2处插入两次?

1 个答案:

答案 0 :(得分:0)

这应该这样做:

CREATE TRIGGER MyTrigger
ON Front.Details
AFTER INSERT
AS
BEGIN
   INSERT INTO backup.DetailsV (Dept, SemID, GPA)
   SELECT 1, SemID, GPA FROM INSERTED
   INSERT INTO backup.DetailsV (Dept, SemID, GPA)
   SELECT 2, SemID, GPA FROM INSERTED
END

请注意,我们从特殊的INSERTED表中选择两次,然后插入两次,每次使用所需的部门。