表 Operatorlog :logid  category
  1       登录
  2       注销
  3       登录
  4       注销
(自动递增)
每当登录某个程序,这个表会自动生成两条记录。
我现在要写触发器,在 logid 最大时执行。
  create trigger insert_end on operatorlog
for insert,update,delete
as
  .
  . 
  .

解决方案 »

  1.   

    将 logid 定义为自增列
    CREATE TRIGGER insert_end 
    ON operatorlog 
    for  insert, update,delete 
    AS
    DECLARE @logid int
    select @logid =i.logid ,
     @dlogid  =d.logid ,
     from operatorlog o 
    inner join inserted i on  o.logid =i.logid 
    inner join deleted d on o.logid =d.logid 
    if update(logid)
    IF NOT EXISTS (logid FROM Operatorlog   WHERE logid = @logid )
    insert into Operatorlog   (cate_id,cate_name) select i.cate_id,i.cate_name FROM inserted i
      

  2.   

    create   trigger   insert_end   on   operatorlog 
    for   insert,update,delete 
    as 
    DECLARE   @logid   int
    select @logid=inserted.logid
    if @logid=4
     begin
        --这里插入你的代码
     end
      

  3.   

    if @logid = 4但我在运行程序时,最大值会变化的!!!
      

  4.   


    ALTER   trigger insert_end on operatorlog
    for insert,update,delete
    asif exists(select * from operatorlog where logid=(select max(logid) from operatorlog) and category='注销')
       begin
       end自己解决!!