if exists(select name from sosc..sysobjects where name ='userupdate'and type='TR' )
drop trigger userupdate
GOcreate trigger userupdate
on sosc..sosc_cust_user
WITH ENCRYPTIONfor updateAS
IF(((SUBSTRING(COLUMNS_UPDATED(),1,1))>0) or((SUBSTRING(COLUMNS_UPDATED(),2,1))>0))
BEGIN   
declare @uid int
set @uid = select uid from bbs_deploy..dnt_users 
where username in(select account from deleted del)
--delete from bbs_deploy..dnt_users where username in(select account from deleted del)
delete from bbs_deploy..dnt_users where uid = @uid
        insert into bbs_deploy..dnt_users (uid,username,nickname,password,email,groupid)
select @uid,account,linkman,dbo.MD5(password),email,10 from inserted ins
end这行set @uid = select uid from bbs_deploy..dnt_users ,老是报错,是不是我赋值的时候有问题,请大家教教我

解决方案 »

  1.   

    不对啊,你又做了delete操作,inserted表似乎已经不存在了!
      

  2.   

    set @uid = (select uid from bbs_deploy..dnt_users)select  @uid =uid from bbs_deploy..dnt_users
      

  3.   

    try 
    select @uid = uid from bbs_deploy..dnt_usersand
    RTFM
      

  4.   

    if exists(select name from sosc..sysobjects where name ='userupdate'and type='TR' ) 
    drop trigger userupdate 
    GO create trigger userupdate 
    on sosc..sosc_cust_user 
    WITH ENCRYPTION for update AS 
    IF(((SUBSTRING(COLUMNS_UPDATED(),1,1))>0) or((SUBSTRING(COLUMNS_UPDATED(),2,1))>0)) 
    BEGIN  
    declare @uid int 
    select top 1 @uid = uid from bbs_deploy..dnt_users 
    where username in(select account from deleted del) 
    --delete from bbs_deploy..dnt_users where username in(select account from deleted del) 
    delete from bbs_deploy..dnt_users where uid = @uid 
            insert into bbs_deploy..dnt_users (uid,username,nickname,password,email,groupid) 
    select @uid,account,linkman,dbo.MD5(password),email,10 from inserted ins 
    end
      

  5.   

    谢谢了,问题已经解决了,好久没写SQL了,一些就犯了个大错,呵呵!