欲实现的功能: 1 在sql server 2000中的2个数据库中进行数据转换,要转换的数据库中的数据表的结构一样!要在程序中实现,不能用DTS .
          2:在 sql server 2000 和 access /excel 中不同类型的数据库之间进行数据转换, 要转换的数据库中的数据表的结构一样!要在程序中实现,不能用DTS .对于1 :比如原数据库为 sggy,其中需要转移数据的几张表是tab_gydh,tab_gyjl,tab_gyyg,我想把这几张表的数据满足一定条件时转移到另外一个已经建立的备份数据库sggy_backup 中去
数据库sggy_backup 中有和数据库sggy 中相对应的结构相同的数据表 tab_gydh_backup,tab_gyjl_backup,tab_gyyg_backup ,我试验了 select into 可是那个每次转移数据 都要建立新的数据表,不符合我的要求,对于2: 这样不同的数据库系统中的数据转换要怎么实现呢,也要在程序中实现!请问各位大虾,sql 语句要怎么写,或者还有其他什么实现方式,敬请赐教!有源程序请示范给小弟学习下!!谢谢!
 

解决方案 »

  1.   

    1)采用insert into 表名(值) select * from 原表
    以上语句就是要求两个表的数据结构完全相同.
    2)采用循环读出语句每一条记录,然后写入到备份表中.
    3)采用batchmove控件,自己根据需要设计吧!
      

  2.   

    to  sanjianxia(三剑侠) 
    你说过的 insert into 表名(值) select * from 原表 我实验过,可是出错,我在 查询分析器里这样写的 :insert into sggy_backup..tab_gydh  select * from  sggy..tab_gydh 
    其中 sggy_backup ,sggy为数据库名称,系统给出的错误提示为 服务器: 消息 8101,级别 16,状态 1,行 2
    仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'sggy_backup..tab_gydh' 中为标识列指定显式值。不知道为什么, 采用你说的 (2),循环,读数据,我考虑过,可是过是数据量很大,会不会太慢了呢,
    batchmove 控件 我没有用过,谁能扼要的说说它的用法,
    对了,我说的不同数据库系统的倒数据要怎么实现呢??
      

  3.   

    兄弟们帮帮忙啊,
    当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'tab_gydh' 中的标识列插入显式值 
    这眼的错误要怎么改啊,
      

  4.   

    用DELPHI 中的TBatchmove控件,指定你的原数据表,然后在指定你的目标数据表(两个数据表的结构就如你所说的要相同),就可以实现数据的传输,转换,当有类型不匹配的情况,就选定batchmove中的一个好象是调整的属性,即可完成你所要做的工作