能否在触发器里做是更新了pic表的哪个字段呢?
---------
啥意思

解决方案 »

  1.   

    create trigger tr_tb1_u on tb1 for update
    as
    begin
    if exsits( select 1 from deleted,inserted where deleted.key = inserted.key)
     update tb2 set view = inserted.view from inserted,tb2 where tb2.key = inserted.keyend
      

  2.   

    create trigger tr_tb1_u on pic for update
    as
    begin
    if exsits( select 1 from deleted,inserted where deleted.key = inserted.key AND deleted.view <> inserted.view )
     update tb2 set view = inserted.view from inserted,tb2 where tb2.key = inserted.keyend
      

  3.   

    哎呀 刚发出去就触发了
    高手看看 是不是这样啊
    CREATE TRIGGER [upt_album_views] ON [dbo].[hl_ualbumpic] 
    FOR UPDATE
    AS
    ---注释
    ---当用户浏览图片时 程序更新hl_ualbumpic.pview的浏览次数
    ---本触发器 当hl_ualbumpic.pview更新时 
    ---自动更新hl_ualbum.aview相册浏览次数
    begin
    declare @cnt int
    declare @aid varchar(50)
    select @cnt = pview,@aid = aid from inserted
    --select @aid = aid from inserted
    --单纯使用 + 1 可能会有逻辑错误
    --当hl_ualbumpic.pview的执行操作是 - 1 时 
    --hl_ualbum.aview也应该执行 - 1 操作,这时可能引起该逻辑错误
    --不过通常情况下,我们还是执行 + 1 操作
    --注意:
    --这里做了更新字段的判断!!!
    --因为有可能本表有多种update
    --这里只针对pview浏览次数的更新做出操作
    if update(pview)
    begin
    update hl_ualbum set aview=aview + 1 where  aid = @aid
    end
    end
      

  4.   

    触发器里可以做,你可以先判断是更新了哪个字段,然后再根据更新的字段再做相应的处理,你可以在一个触发器里为任意几个字段的更新去写相应的操作,判断哪个字段被更新了好像有个函数:updated(),我记不清楚了,建议去查下帮助文件
      

  5.   

    一个update操作是可以分解为delete 和 insert 两个步骤地,你如果要判断浏览次数(假设)是增加还是减少,可以通过取 deleted表和insert 表里的两个值进行比较,这样可以得到到底是增加了还是减少了