select *(字段列表) into c(要插入的表名) from a , b

解决方案 »

  1.   

    从SQL SERVER2000帮助可以看出,SELECT INTO相当于先创建新表再插入数据,
    当相当表名的表存在的,表的创建会失败,也就是说,
    这条语句第二次执行会有表已存在异常产生。
    ---------------------------------------------------------------------------
    INTO 子句
    创建新表并将结果行从查询插入新表中。用户若要执行带 INTO 子句的 SELECT 语句,必须在目的数据库内具有 CREATE TABLE 权限。SELECT...INTO 不能与 COMPUTE 子句一起使用。有关更多信息,请参见事务和显式事务。 通过在 WHERE 子句中包含 FALSE 条件,可以使用 SELECT...INTO 创建没有数据的相同表定义(不同表名)。语法
    [ INTO new_table ]参数
    new_table根据选择列表中的列和 WHERE 子句选择的行,指定要创建的新表名。new_table 的格式通过对选择列表中的表达式进行取值来确定。new_table 中的列按选择列表指定的顺序创建。new_table 中的每列有与选择列表中的相应表达式相同的名称、数据类型和值。当选择列表中包含计算列时,新表中的相应列不是计算列。新列中的值是在执行 SELECT...INTO 时计算出的。
      

  2.   

    各位大哥:我现在想把一个从几个表中select的集合插到一张表中,但要全面覆盖数据,怎么办?
      

  3.   

    if Exist(c)       ---判断表c是否存在..
     drop table c     ---存在则删表cselect * into c  from a , b
      

  4.   

    >>>
    首先删除c表的数据可以嘛?
    DELETE FROM c
    select * into c  from a , b WHERE ....
      

  5.   

    只是删除表的数据不行.必须删掉表.
    因为select * into c
    相当于Create table c...  然后insert ..... 
    至少在SQLSERVER2000里面不行.