当前位置: 代码迷 >> Sql Server >> SQL语句 当表2 或 表3 或 表4 或 表5 或 表6任一一个表出现新增、修改、删除时,表1会自动更新
  详细解决方案

SQL语句 当表2 或 表3 或 表4 或 表5 或 表6任一一个表出现新增、修改、删除时,表1会自动更新

热度:409   发布时间:2016-04-24 10:33:42.0
求助:SQL语句 当表2 或 表3 或 表4 或 表5 或 表6任一一个表出现新增、修改、删除时,表1会自动更新
表1=
INSERT INTO  表1 (A列,B列,C列,D列, E列)  SELECT 表2_数据,0, 0 , 0, 0    FROM 表2
INSERT INTO  表1(A列,B列,C列,D列, E列)  SELECT  0,表3_数据, 0 , 0, 0   FROM 表3
INSERT INTO  表1 (A列,B列,C列,D列, E列)  SELECT  0, 0,表4_数据, 0 , 0   FROM 表4
INSERT INTO  表1(A列,B列,C列,D列, E列)  SELECT  0, 0, 0,表5_数据, 0    FROM 表5
INSERT INTO  表1 (A列,B列,C列,D列, E列)  SELECT  0, 0, 0, 0, 表6_数据   FROM 表6

求  表2   或   表3   或   表4   或   表5   或   表6,任一一个表出现新增、修改、删除时,表1会自动更新;
SQL语句怎么写?触发器可以解决问题吗?如果可以应当怎么写?
------解决方案--------------------
用触发器实现,具体怎么写得看具体表结构和详细的更新逻辑是怎样的.
------解决方案--------------------
写法类似这种
CREATE TRIGGER  tri_insert ON  [表2]
FOR  INSERT
AS 
INSERT INTO 表1 (A列,B列,C列,D列, E列)
SELECT 表2_数据,0, 0 , 0, 0 FROM 表2 
WHERE  表2_数据 IN (SELECT 表2_数据 FROM  INSERTED i WHERE i.表2_数据=表2_数据)
END