SQL语言好象不支持INSERT语句添加条件就是INSERT后面不能加WHERE?
请高手讲一下

解决方案 »

  1.   

    insert into yourtable select * from anotthe table where....;
      

  2.   

    就好象不行呀
    datamodule4.ADOQuery1.SQL.Add
        ('insert into teachernodo (teacherid,xinqi,dijijie) values');
         datamodule4.ADOQuery1.SQL.Add('(:teacherid,:xinqi,:dijijie)  ');
        datamodule4.ADOQuery1.Parameters .ParamByName('teacherid').Value :=teacherid;
        datamodule4.ADOQuery1.Parameters.ParamByName('xinqi').Value :=xinqi;
        datamodule4.ADOQuery1.Parameters.ParamByName('dijijie').Value :=dijijie;
        datamodule4.ADOQuery1.ExecSQL ;
    可以,
    datamodule4.ADOQuery1.SQL.Add
        ('insert into teachernodo (teacherid,xinqi,dijijie) values');
         datamodule4.ADOQuery1.SQL.Add('(:teacherid,:xinqi,:dijijie)  ');
    datamodule4.ADOQuery1.SQL.Add('where 1<>2  ');
        
      datamodule4.ADOQuery1.Parameters .ParamByName('teacherid').Value :=teacherid;
        datamodule4.ADOQuery1.Parameters.ParamByName('xinqi').Value :=xinqi;
        datamodule4.ADOQuery1.Parameters.ParamByName('dijijie').Value :=dijijie;
        datamodule4.ADOQuery1.ExecSQL 
    不行
      

  3.   

    问题出现在这里
    datamodule4.ADOQuery1.SQL.Add('where 1<>2  ');//去掉
    用 INSERT INTO T1(f1,f2,f3) VALUES(v1,v2,v3)是不能加判断语句的
    它不同如下var
       vSql : String;
    begin
    ......
       vSql := 'INSERT INTO teachernodo SELECT * FROM teachernodo2 WHERE 1<>2';
      datamodule4.ADOQuery1.SQL.Add(vSql);
      datamodule4.ADOQuery1.ExecSQL   
    end;
      

  4.   

    foilsman(刀仔)  测试不行