求教一条数据库触发器。。希望能给具体点。我现在有一个数据库info 数据库有2个表 table1 和table2 table1分别有 id number name phone state这5列,id是主键自动增长的
table2的设计和table1一样。当在table2中的number列有一条数据和table1中的数据相同的话,table1的那一条数据的state这一列的值就改为“忙碌”当table1中的number列没有数据和table2中的number列数据相同的话table1中的number列的数据会自动改为“空闲”哪个高手能告诉我怎么写吗?如果还有疑问就加我QQ806778705

解决方案 »

  1.   

    直接用SQL语句即可.
    update table1 set state = '忙碌' where number in (select number from table2)
    update table1 set state = '空闲' where number not in (select number from table2)如果想同时做上面的步骤,可以用case when或存储过程.
      

  2.   

    为table2的insert和delete操作创建触发器
    当table2中添加一条信息时,判断添加信息中的number和table1中的number是否一样
    如果一样,table1中相应的信息中的state就为忙碌,否则不管。
    当table2中删除一条记录时,则查找table1中是否存在与删除的这条信息中number值相同的信息,
    如果有,则更改table1中相应信息的state为空闲
    下面是触发器脚本,不知道你要的是不是这样的
    create trigger table2_insert
    on table2 for insert
    as
    begin
        declare @num int
        set @num = (select number from inserted)
        if(exists(select * from table1 where number=@num))
        begin
            update table1 set state='忙碌' where number=@num   
        end
    end
    create trigger table2_delete
    on table2 for delete
    as
    begin
        declare @num int
        set @num = (select number from deleted)
        if(exists(select * from table1 where number=@num))
        begin
            update table1 set state='空闲' where number=@num   
        end
    end