比如我数据库有一个表 table  有字段 a 数字型。我想当数据库如果存在a大于100的数值的时候就提示我。方式可以是发邮件,或者插入到我建的日志表中。请问用什么方法可以快速实现。

解决方案 »

  1.   

    --> 测试数据:[ta]
    IF OBJECT_ID('[ta]') IS NOT NULL DROP TABLE [ta]
    GO 
    CREATE TABLE [ta]([id] INT,[name] VARCHAR(1))
    GO
    IF OBJECT_ID('[tb_log]') IS NOT NULL DROP TABLE [tb_log]
    GO 
    CREATE TABLE [tb_log](id INT ,date datetime)
    GO 
    IF OBJECT_ID('tt') IS NOT NULL DROP TRIGGER tt
    GO 
    CREATE TRIGGER tt ON ta 
    INSTEAD OF INSERT,UPDATE 
    AS
    BEGIN
    IF EXISTS(SELECT 1 FROM INSERTED WHERE id>100) 
    INSERT INTO tb_log SELECT INSERTED.id,GETDATE() FROM INSERTED
    ELSE
    INSERT INTO ta SELECT* FROM INSERTED
    END 
    GOINSERT [ta] SELECT 1,'a' 
    INSERT [ta] SELECT 101,'b' 
    SELECT * FROM ta
    SELECT * FROM tb_log
      

  2.   

    对update 同样有效 UPDATE [ta] SET id=102 WHERE id=1
      

  3.   

    用触发器和数据库邮件.Use Trigger and Database mail.
      

  4.   

    CREATE TRIGGER tt ON ta 
    INSTEAD OF INSERT,UPDATE 
    AS
    BEGIN
    IF EXISTS(SELECT 1 FROM INSERTED WHERE id>100) 
    INSERT INTO tb_log SELECT INSERTED.id,GETDATE() FROM INSERTED
    ELSE
    INSERT INTO ta SELECT* FROM INSERTED
    END 
    GO