CREATE TRIGGER Trg_name
ON usr
FOR INSERT, UPDATE
AS
     --当经验(Userep)小于500时 (userep/500)+1 为1级
     --当经验(Userep)大于500时小于1000 (userep/500)+1 为2级.....
Update Usr Set UserGroupid=Cast(Inserted.userep as int)/500+1 
            from Inserted where Usr.主键=Inserted.主键GO

解决方案 »

  1.   

    谢谢了,思路明白了,马上加分能把它完整的写一下吗,我是刚学的sql server,T-SQL的语法基本不懂,麻烦了!
      

  2.   

    CREATE TRIGGER Trg_name
    ON usr
    FOR INSERT, UPDATE
    AS
     if Exists(Select UserGroupid from Usr a,Inserted b 
       where a.UserGroupid<>(Cast(Inserted.userep as int)/500+1) and a.主键=b.主键)
         Update Usr Set UserGroupid=Cast(Inserted.userep as int)/500+1 
                from Inserted where Usr.主键=Inserted.主键GO
      

  3.   

    CREATE TRIGGER updgroups ON usr
    FOR INSERT, UPDATE
    AS
    if Exists(Select UserGroupid from Usr a,Inserted b 
       where a.UserGroupid<>(Cast(Inserted.userep as int)/500+1) and a.Userid=b.Userid)
         Update Usr Set UserGroupid=Cast(Inserted.userep as int)/500+1 
                from Inserted where Usr.Userid=Inserted.UseridGO检查语法的时候,提示:“列前缀'Inserted'与查询中所用的表名或别名不符。”
      

  4.   

    不好意思 。
    CREATE TRIGGER Trg_name
    ON usr
    FOR INSERT, UPDATE
    AS
     if Exists(Select a.UserGroupid from Usr a,Inserted b 
       where a.UserGroupid<>(Cast(b.userep as int)/500+1) and a.主键=b.主键)
         Update Usr Set UserGroupid=Cast(Inserted.userep as int)/500+1 
                from Inserted where Usr.主键=Inserted.主键GO