如果条件灵活多变,还不如直接sql:
insert into b select * from a where ...

解决方案 »

  1.   

    Insert Into B From (Select * From A Where ??)
      

  2.   

    /*统计用存储过程,根据时间段,将该时间段内的数据(按月表存放)选入一个表中 **query  *//*
    sp_get_query '1999-1-1','2001-11-1','ar',1select * from arquery由于库中10月以前的漏检表结构与新表不同,所以会有错误 */create procedure sp_get_query @start_date datetime, @end_date datetime, @tb_title char(2),@return int outputas--@return为一返回值,现在先不设
    --@tb_title:  表明是生成哪种数据的结果表  ry:  生成 ryquery  st:  生成 stquery er:  生成 erquery ar:  生成 arquery
    declare @sql varchar(255)
    declare @tbname varchar(8)
    declare @month_count int
    declare @i  int
    select @i=0select @tbname=@tb_title+'query'--clear table **query
    select @sql='delete from '+@tbname
    --select @sql
    exec (@sql)select @month_count=datediff(month,@start_date,@end_date)
    --select @month_count as month_count--逐月进行判断,然后插入表**querywhile(@i<(@month_count+1))
      begin
       select @tbname=@tb_title+convert(varchar(8),dateadd(month,@i, @start_date),112)
       --select @tbname,@i   if(exists(select * from sysobjects where name=@tbname and xtype='U'))
         begin
           select @sql =  'insert into ' + @tb_title + 'query' + ' select * from ' + @tbname 
           --select @sql
           exec (@sql)
         end   set @i=@i+1        
      end 
      

  3.   

    能再简单些吗?
    我只是想把A表中month=?的数据中的3列数据插到B表中!
      

  4.   

    : thresh1(清芬)  你目前是不是在青岛?
      

  5.   

    create procedure P_InsertToB @month int
    asInsert Into B From (Select * From A Where month=@month) return
      

  6.   

    to thresh1:
      我同意来的最早的兄弟,还不如直接用SQL,insert into b from select field1,field2,field3 where month=?