USE pubs
IF EXISTS (SELECT name FROM sysobjects
      WHERE name = 'reminder' AND type = 'TR')
   DROP TRIGGER reminder
GO
CREATE TRIGGER reminder
ON titles
FOR INSERT, UPDATE 
AS RAISERROR (50009, 16, 10)
GO

解决方案 »

  1.   

    USE pubs
    IF EXISTS (SELECT name FROM sysobjects
          WHERE name = 'reminder' AND type = 'TR')
       DROP TRIGGER reminder
    GO
    CREATE TRIGGER reminder
    ON titles
    FOR INSERT, UPDATE, DELETE 
    AS
       EXEC master..xp_sendmail 'MaryM', 
          'Don''t forget to print a report for the distributors.'
    GO
      

  2.   

    update 触发器你都会写,insert,delete就更简单了。判断哪种可以参照:
    CREATE      TRIGGER TEMP
    ON TEMP_TABLE
    AFTER INSERT,UPDATE,DELETE
    --更新
    IF EXISTS(SELECT * FROM DELETED) AND EXISTS(SELECT * FROM INSERTED)
    --删除
         IF EXISTS(SELECT * FROM DELETED) AND NOT EXISTS(SELECT * FROM INSERTED)
    --新增
    IF EXISTS(SELECT * FROM INSERTED) AND NOT EXISTS(SELECT * FROM DELETED)
    ....
      

  3.   

    自己想出结果,语句如下,已经通过测试。正确!create trigger depiddelete on department for delete as
    declare @dep_id int
    select @dep_id=dep_id from deleted
    delete employee where @dep_id=dep_idcreate trigger depidinsert on department for insert as
    declare @dep_id int 
    select @dep_id=dep_id from inserted
    insert into employee(dep_id) values(@dep_id)
      

  4.   

    啊 天啊 你不是删除列啊 我翻了一个下午的资料,没用找到删除表列的触发器。ALTER TABLE TB_TEST
    DROP COLUMN COL_A没用相应的触发器