删除一列如何影响触发器

通常,从表中删除列时,基于该表的触发器不变。然而如果您删除的列出现在触发器操作子句中,删除该列可使得触发器无效。以下语句说明了可能对触发器的影响:
CREATE TABLE tab1 (i1 int, i2 int, i3 int);
        CREATE TABLE tab2 (i4 int, i5 int);
        CREATE TRIGGER col1trig UPDATE OF i2 ON tab1 
        BEFORE(INSERT INTO tab2 VALUES(1,1)); 
        ALTER TABLE tab2 DROP i4;

ALTER TABLE 语句之后,tab2 仅有一列。col1trig 触发器已失效,因为当前用两列的值定义的操作子句不能发生。

如果您删除了在 UPDATE 触发器的触发列列表中出现的列,则数据库服务器从触发列列表删除该列。如果列是触发列列表的唯一成员,则数据库服务器从表删除该触发器。有关 UPDATE 触发器中触发列的更多信息,请参阅 CREATE TRIGGER 语句

如果更改底层的表使触发器失效,则删除然后重新创建触发器。