CREATE TRIGGER Updata_UserName ON [dbo].[UserInfo] 
FOR update
AS
if(new.UserName<>old.UserName)
 Update UserInfo set pwd = '1'
怎么错了,说new与表名不匹配要不谁举个例子,让我入下门table:UserInfo
字段:UserID UserName Pwd

解决方案 »

  1.   


    create table userinfo(userid int,username varchar(20),pwd int)
    go
    create trigger t_username on userinfo for update
    as
    begin
    set nocount on
    update t
    set pwd=1
    from userinfo t
    inner join
    deleted d
    on t.userid=d.userid
    where t.username<>d.username
    set nocount off
    end
    go
    insert into userinfo select 1,'a',0 union all select 5,'d',0
    go
    select * from userinfo
    /*
    userid username pwd
    1 a 0
    5 d 0
    */
    go
    update userinfo set username='c' where userid=1
    go
    select * from userinfo
    /*
    userid username pwd
    1 c 1
    5 d 0
    */
    go
    update userinfo set userid=6 where username='d'
    go
    select * from userinfo
    /*
    userid username pwd
    1 c 1
    6 d 0
    */
      

  2.   


    你把oracle的语法用在sql server上,当然会出错啦