create trigger tr_employee
on employee
for insert ,update,delete
asdelete tonline
from deleted
where deleted.state=1
and deleted.userid=tonline.useridinsert tonline
select userid,username
from inserted i
where not exists (
select 1 from tonline
where userid=i.userid
)go

解决方案 »

  1.   

    有问题,修改如下:create trigger tr_employee
    on employee
    for insert ,update,delete
    asdelete tonline
    from deleted
    where deleted.state=1
    and deleted.userid=tonline.useridinsert tonline
    select userid,username
    from inserted i
    where state=1 
    and not exists (
    select 1 from tonline
    where userid=i.userid
    )go
      

  2.   

    create trigger tri_employee
    on employee
    for insert,update
    as 
    insert into tonline select userid,username from inserted
    go 
    create trigger tri_employee
    on employee
    for delete,update
    as
    delete tonline from deleted where tonline.userid=deleted.userid and deleted.state=1
    go
    可以把两个存储过程和在一起的。可是这样比较复杂。
      

  3.   

    TO Yang_(扬帆破浪)
      如果是insert操作的话,那么逻辑表deleted 存在吗???如果它不存在,系统会终止触发器的执行的。
      

  4.   

    liuyun2003(流云):
       写在一起事没有问题的
       分开写就必须写三个,两个都有update是不行的,只能触发一个
      

  5.   

    写在一起如果insert,那deleted表示有的,但是没有记录。
      

  6.   

    create trigger tr_employee
    on employee
    for insert 
    asinsert tonline
    select userid,username
    from inserted i
    where not exists (
    select 1 from tonline
    where userid=i.userid
    )delete tonline
    from inserted
    where inserted.state=0
    and inserted.userid=tonline.useridgo
      

  7.   

    create trigger tr_employee on employee
    for insert,update
    as
    insert tonline select userid,username from inserted
    where inserted.state=1delete tonline from updated where update.state=0
      

  8.   

    delete tonline from updated where updated.state=0
      

  9.   

    呵呵,不要乱写嘛
    updated?
      

  10.   

    TO  joygxd(大白鲨) 有updated这个逻辑表吗??你用的是MSSQL2003吧?呵呵,我们这里还没有这个版本啊。能介绍一下吗??
      

  11.   

    TO Yang_(扬帆破浪)你说的对啊。我测试了。果然和你说的一样啊。呵呵~~又学了一手啊。