现有sec0410_data1 和sec0410_data2两个表,其结构相同,数据不已一样,我想把sec0410_data2的所有数据 插入到sec0410_data1 里面.我用INSERT INTO .....语句.但是每次sec0410_data1 的数据都被sec0410_data2的数据覆盖  求各位大神给个主意  

解决方案 »

  1.   

    INSERT INTO 貌似没有覆盖的效果,你确定?
      

  2.   

    有可能是编写错误  只出现了sec0410_data2的数据  sec0410_data1 的数据没出现
      

  3.   

    SELECT COUNT(*) FROM sec0410_data1
    SELECT COUNT(*) FROM sec0410_data2INSERT INTO sec0410_data1
    SELECT * FROM sec0410_data2TRUNCATE TABLE sec0410_data2SELECT COUNT(*) FROM sec0410_data1
    SELECT COUNT(*) FROM sec0410_data2
      

  4.   

    1. 你在 insert into 之前,是不是在表 sec0410_data1 上执行了 delete 或 truncate 语句。
    2. 你检查一下,sec0410_data1 表上是不是有触发器,把原来的数据删除或更新了。
      

  5.   

    如果是单纯的插入,INSERT INTO没有问题,如果说只出现sec0410_data2的数据,而没有sec0410_data1的数据,那么说明在你执行该插入操作之前,有清空或者删除sec0410_data1数据的动作。如果需要插入并修改原来的值,那么2008以后可以使用MERGE。数据量大的话,可以考虑将sec0410_data1和sec0410_data2的数据用SSIS导出后重新导入到新表sec0410_data3,然后删除sec0410_data1,将sec0410_data3重命名为sec0410_data1。
      

  6.   

    我也怀疑是不是有一个insert触发器? 插入之前先把表1清掉了?