none
SQL 这种情况怎么触发 RRS feed

答案

全部回复

  • Take look at 'check constraints' in books online.
    2010年2月5日 4:10
  • 表A
    A列
    B列

    当插入A列的值大于9,B列为1.此时A列则清0
    --Use trigger

    create trigger tr_A on A
    after insert,update
    as
    
    update A
    set B=case when A>9 then 1 else B end,A=case when A>9 then 0 else A end
    where exists(select 1 from inserted where A=a.A and B=a.B)


    ROY WU(吳熹)
    2010年2月5日 4:21
    版主
  • check constraint 只是约束, 楼主的问题涉及数据调整, 所以触发器的方案才能满足需要.
    2010年2月5日 4:47
  • create trigger tr_A on A instead of insert,update
    as
    update A set B=case when A>9 then 1 else B end,A=case when A>9 then 0 else A end
    where exists(select 1 from inserted where A=a.A and B=a.B)
    替换触发器,不过不知道楼主做什么?
    2010年2月7日 9:49
  • create
     trigger
     tr_A on
     A instead
     of
     insert
    ,update
    
    as
    update A set B=case when A>9 then 1 else B end ,A=case when A>9 then 0 else A end
    where exists (select 1 from inserted where A=a.A and B=a.B)
    替换触发器,不过不知道楼主做什么?
    樓上兄弟,錯用觸發器類型。
    用instead of --如果是新增/更新數據,數據變化前的操作判斷,不會執行触发操作。

    执行 INSTEAD OF 触发器,而不执行触发操作。在创建插入的删除的 表(反映对基表所做的更改)之后,而在执行任何其他操作之前执行这些触发器。这些触发器在执行任何约束前执行,因此可执行预处理来补充约束操作。

    ROY WU(吳熹)
    2010年2月9日 9:56
    版主