近来给一个精矿管理系统搞得筋疲力尽,碰到得问题如下开始有一个总表“精矿成分”如下:(以下简称表A)(字段名)  精矿名称   杂质1  杂质2  杂质3......杂质12
 (记录1)     Cu        Pb     As    Sio2
 (记录2)     Fe        Zn     Pb    Sio2我的设计是若记录1输完后,我点击一个BOTTON(输入)后,生成对应该Cu矿的一系列的表,以“cu精矿品质”表为例:(以下简称表B)(字段名)   级别   主品味(%)  Pb(%)  As(%)  sio2(%)......
 (记录1)     1       50        4      3       6   
                   
大家可以看到表A输入的记录1中的“杂质”,在表B中成了对应的“字段”
我的问题是,如果表A中的记录对应的杂质名改变了(包括添加,删除,修改)
那表B的字段应该相应的改变,那要如何设计这两个表的关连呀???会不会影响表B中该字段原有的记录呢
SOS,HELP ME!

解决方案 »

  1.   

    1 做一个trigger,里面对表B进行修改
    2 对列的修改
    更改表以添加新列
    下例添加一个允许空值的列,而且没有通过 DEFAULT 定义提供值。各行的新列中的值将为 NULL。CREATE TABLE doc_exa ( column_a INT) 
    GO
    ALTER TABLE doc_exa ADD column_b VARCHAR(20) NULL
    GO
    EXEC sp_help doc_exa
    GO
    DROP TABLE doc_exa
    GOB. 更改表以除去列
    下例修改表以删除一列。CREATE TABLE doc_exb ( column_a INT, column_b VARCHAR(20) NULL) 
    GO
    ALTER TABLE doc_exb DROP COLUMN column_b
    GO
    EXEC sp_help doc_exb
    GO
    DROP TABLE doc_exb
    GO
      

  2.   

    query1.Close;
      query1.SQL.Clear;
      query1.SQL.Add('select a.ylxh,a.badhsl,a.bashsl,a.ylpm,a.ylbh,a.cppm,a.scbh,c.ckrq,c.cksl,(c.cksl* a.badhsl*(1+a.bashsl)) as qqw from jck_dshk a,jck_sjckcpk c where a.scbh=c.scbh');
      query1.SQL.Add('and c.ckrq='''+edit4.text+''' and c.cksl=''+f1+'' and a.ylpm like''%'+edit5.text+'%''' );
      query1.SQL.Add('group by a.badhsl,a.bashsl,a.ylxh,a.ylpm,a.ylbh,a.cppm,a.scbh,c.ckrq,c.cksl order by a.badhsl,a.bashsl,a.ylxh,a.ylpm,a.ylbh,a.cppm,a.scbh,c.ckrq,c.cksl');
      query1.Active:=true;
      Query1.open;多表关联实例SQL语言
      

  3.   

    俺觉的要从根上解决,又从效率上考虑...
    鉴于表B中的百分比数据全部取自于表A的计算,可否将表B做成一个视图。
      

  4.   

    我的表是动态建的
    所以应该在DELPHI的程序中写相应的代码
    不能在SQL SERVER数据库中建,如何是好?