select @Duty=payDuty from inserted

解决方案 »

  1.   

    这句话有问题:select @Duty=payDuty from pay20043 
    只能从inserted表中取。
      

  2.   

    CREATE trigger pay20043_Assure 
    on pay20043 
    for insert 
    as 
    declare @Duty varchar(50) 
    select @Duty=payDuty from inserted
    if @Duty='总经理' or @Duty='副总经理' or @Duty='助理总经理' 
    begin 
    update pay20043 
    set payAssure=payBa/10 
    end 
    else 
    begin 
    update pay20043 
    set payAssure=0 
    end
      

  3.   

    select @Duty=payDuty from inserted 这个是错
    我知道我错在哪了
    如果新增一行,payDuty为总经理,则,payAssure列所有值都为payBa/10,
    如果新增一行,payDuty不为这三个,则,payAssure列所有值都为0
    要在update pay20043 set payAssure=payBa/10 加上一个where才行。
    没在这里加过,有人能帮我吗?
      

  4.   

    搞定了,加上一句
    update pay20043 set payAssure=payBa/10
    where payNum=(select payNum from inserted) 
    这样就不用所有行都变了。