当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·如何拦截其他应用程序的消息    »显示摘要«
    摘要: 在一个程序中,需要打开excel。但是,希望在关闭excel的时候首先通知启动程序,该如何解决?我以前一直用bcb的,这次用vb.net,主要代码如下,可就是不能响应.谁知道spy++和myspy是怎么做的吗? m_comexcelapp.visible = true strcaption = m_comexcelapp.caption.trim lmainwnd = findwin......
    摘要: 今天碰到她了 隔着玻璃 她打的轿车,在安静的放着背景音乐的冷气车里向我招手 我站在公交车里,在充斥着躁声和闷热的汗臭的车里向她尴尬的笑笑 她是我的高中同学,我也是她的高中同学 毕业后,英语出色的她在一家外企做着体面的高级电话接线员(就是通常所讲的技术支持)的工作,按月俸禄,丰衣足食 毕业后,报着理想要做一番事业的我四处奔波在各类所谓软件公司中,有上顿没下顿,节衣缩食 ... 开发部是软件开......


这个触发器怎么写.

二个表  
  表1  
  materiel:主要字段如下  
  [idno]         [char]   PRIMARY   KEY    
  [idname]     [char]  
  [unit]         [char]  
  [staut]       [char  
  [kind]         [char]  
  [firstqty][int]    
  [safeqty]   [int]    
  [quantity][int]    
  [allotqty][int]  
  表二  
  poorders:主要字段如下  
  [orderno]   [char]  
  [ordeitem][char]  
  [sort]         [tinyint]  
  [quantity][int]  
  .....  
  PRIMARY   KEY   (orderno,ordeitem)  
  因为如果表二中的orderitem是来自表1的idno  
  当新增一条记录时,表1的allotqty就应该加上表二的quantity  
  现在如果修改了表二的quantity那么表一的allotqty值就应该是=material.allotqty加上表二修改前的quantity再减去修改后的quantity  
  我是这样做的  
  CREATE   TRIGGER   howedit   on   poorders  
  INSTEAD   OF   UPDATE  
  AS  
  BEGIN  
      update   material   set   allotqty=allotqty+deleted.quantity-inserted.quantity   WHERE   material.idno=inserted.orderno  
  END  
  不对啊!

NO.1   作者: nboys

CREATE   TRIGGER   howedit   on   poorders  
  INSTEAD   OF   UPDATE  
  AS  
  BEGIN  
      update   material   set   allotqty=allotqty+deleted.quantity-inserted.quantity    
  from   deleted,inserted,material  
  WHERE   material.idno=inserted.orderno   and   material.idno=deleted.orderno   and   deleted.orderno=inserted.orderno  
  END  
 

NO.2   作者: zarge

CREATE   TRIGGER   howedit   on   poorders  
  INSTEAD   OF   UPDATE  
  AS  
  BEGIN  
      update   material   set   allotqty=allotqty+deleted.quantity-inserted.quantity    
      from   deleted,inserted,material  
      WHERE   material.idno=inserted.orderno   and   material.idno=deleted.orderno    
  END  
 

NO.3   作者: P1mm

CREATE   TRIGGER   howedit   on   poorders  
  INSTEAD   OF   UPDATE,insert,delete  
  AS  
  BEGIN  
      update   material    
            set   allotqty=allotqty+t1.quantity  
        from   (select   ordeitem,sum(quantity)   as   quantity    
  from   (select   ordeitem,quantity   from   inserted    
  union   all    
  select   ordeitem,-quantity   as   quantity   from   deleted   )   as   t  
  group   by   ordeitem  
  )   as   t1  
  WHERE   material.idno=t1.orderno  
  END  
 

NO.4   作者: P1mm

注意一次可能修改或者插入多条纪录,应该需要考虑删除纪录的情况  
 


 ·一个sql语句,高手看看    »显示摘要«
    摘要: 一个表: item color amount a red 20 a blue 35 b red 16 b blue 13 怎么用sql语句现实红色数目大于蓝色的item,并显示差直 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE