CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  数据库相关

ASA数据库中的这个触发器为什么会出错?

楼主690cj(健)2004-12-02 12:51:49 在 PowerBuilder / 数据库相关 提问

ALTER   TRIGGER   "up_ceiliang"   BEFORE   INSERT  
  ORDER   1   ON   sjb  
  REFERENCING   NEW   AS   new_name  
  FOR   EACH   ROW  
  // [   WHEN(   search_condition   )   ]  
  BEGIN  
    if(select   celiang.sheng_yu-new_name.dian_jia*new_name.jin_z   from   celiang,new_name   where   celiang.chehao   =   new_name.che_hao)   >   0   then  
          update   celiang   set  
              celiang.sheng_yu   =   round(celiang.sheng_yu-(new_name.dian_jia*new_name.jin_z),1)   where  
              celiang.chehao   =   new_name.che_hao  
      else  
          update   celiang   set  
              celiang.sheng_yu   =   0   where   celiang.chehao   =   new_name.che_hao  
      end   if  
  END  
  保存时没有问题,当在程序中触发插入事件时出现如下错误。  
  SQLSTATE   =   S0002  
  [Sybase][ODBC   Driver][Adaptive   Server   Anywhere]Table   or   view   not   found:   Table   'new_name'   not   found  
   
  No   changes   made   to   database.  
   
  INSERT   INTO   "sjb"   (   "fyd",   "che_hao",   "che_xin",   "huo_min",   "si_ji",   "rq",   "sj",   "mao_z",   "pi_z",   "jin_z",   "czy",   "dian_jia",   "fukuan_fs",   "bufeng_fuku"   )   VALUES   (   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?   )  
   
  请高手帮忙。  
   
  问题点数:80、回复次数:3Top

1 楼zhangdatou(猪头)回复于 2004-12-02 13:50:36 得分 10

Table   'new_name'   not   found  
   
  table   new_name   有错误呀Top

2 楼callingda(林丁)回复于 2004-12-06 12:25:58 得分 70

if(select   celiang.sheng_yu-new_name.dian_jia*new_name.jin_z   from   celiang,new_name   where   celiang.chehao   =   new_name.che_hao)   >   0   中,   FROM   後面的   new_name   不對,   不可以這樣用.   在觸發器中,   new_name只是相當於一個新行,而不能代表這個TABLETop

3 楼690cj(健)回复于 2004-12-07 14:37:24 得分 0

多谢林丁,我想表达的意思是:有a表(字段D、字段E)、b表(字段D、字段F、字段G),触发器的要求如下,当在b表中插入一条记录时如果a.E>b.F*b.G     where     a.D=b.D时,a.E=a.E   -   b.F*b.G,否则a.E   =   0。  
  请问怎样写?  
  Top

相关问题

  • 创建触发器出错?????
  • 触发器删除时出错!
  • 当数据库批量增加时,触发器不执行?
  • 限定数据库记录个数的触发器
  • 触发器可以跨数据库起作用吗?
  • Oracle数据库触发器的问题,请进
  • 怎样利用触发器实现数据库主键自增?
  • oracle数据库中的触发器问题
  • 怎样知道数据库里有些什幺触发器?
  • 如何在触发器中获得数据库名称自身?

关键词

  • 字段
  • celiang
  • chehao
  • che
  • sheng
  • hao
  • yu
  • jia
  • jin
  • dian

得分解答快速导航

  • 帖主:690cj
  • zhangdatou
  • callingda

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo