以前做的查询数据时用s='select * from t_x where 1=1';
根据用户选择的条件拼凑出sql语句,
然后查询出结果并显示给用户。
现在需求改变,需要把查询出来的数据,
另存到另外的数据表中,有什么快捷的办法呢?

解决方案 »

  1.   

    先建好表table1,查询条件一样,insert一下不就ok了  ……
      begin
        ……
         s:='insert into table1(a,b,c,d) '
         s:=s+'select a,b,c,d from t_x where 1=1';
         if 某条件 then     //用户选择的条件
           s:=s+' and 条件';     ……
         ……
         s:='select a,b,c,d from table1';//查询显示数据
        ……  end
      ……
      

  2.   

    都还没读明白,是谁的问题的?另存记录集,一种就是楼上说的
    还有一种就是:select 字段们 into 尚未建立的表 from ... where ...
      

  3.   

    你们多读一题目吧,
    一开始存储过程可能这么写
    create proc up_select(@p1,@p2,@p3,@p4,@p5,@p6)as
    begin
      declare @sql varchar(8000)
      set @sql='select * from t_x where 1=1'  if @p1<>'' 
      set @sql=@sql + ' and p1=''' + @p1 + ''''  if @p2<>''
      set @sql=@sql + ' and p2=''' + @p2 + ''''  ...
      ...
      print(@sql)
      exec(@sql)
    end这是之前设计好的程序,用户一查就可以查询到这些数据,现在要对查询到的这些数据又做另存处理,
    当然如果是导出excel的话就最方便了,现在问你是不修改原来存储过程的前提下有什么巧妙快捷的方法
    将查询到的结果集另存到其他表或新建的表中?
      

  4.   

    用SELECT INTO FROM语句来将结果集保存到新表
      

  5.   

    楼上说的方法我早已经重新做好了程序,但是我估计用delphi应该可以还有其他非常快捷的办法的
      

  6.   

        查询结果又存入到数据库中,那么只能存最后一个人查询的最后一次结果,这样做意义不大。可以改为把查询结果保存为电子表格更好,Delphi里面就有这样的专用组件:Advanced.Export.Component.
      

  7.   

    楼上的导出excel就是非常的好办了,我题目的目的不是这个呢