两张表存在于两个不同的数据库中,并且两张表的结构和字段都不相同,现在我想要将一张表中的数据复制到另一张表中,
用DTS导入,选择相应的列映射时目的表中有一些字段不能为空,这些不为空的字段又不能随便写,有没有方法可以导入数据呢?
难点在于两张表结构不同,目的表中的某些字段可能源表中没有对应的项。

解决方案 »

  1.   

    insert into 目的表(字段)
    select 对应字段 from 源表 where 条件 
      

  2.   

    建议:
    先用DTS倒入到一个新表,字段当然和原表一摸一样
    再想办法用
    insert ...(...) select ... from ...
    来倒入数据,所有字段都必须找出一个规则,必要的时候可以用case when 语句根据不同条件决定数据 
      

  3.   

    先用DTS导入一个不存在的表里去(不存在会自动建)insert   into   目的表(字段) 
    select   对应字段   from   dts导过来的表   where   条件   
      

  4.   

    alex6731 
     
    等 级:
     发表于:2008-02-01 15:23:215楼 得分:0 
    1楼的兄弟,那样是不行的,因为目的表有些字段不能为空 
     --------------------------------------------
    某些字段不能为空 那么你要默认为什么啊还是 导入为什么
      

  5.   

    举例子:假设我的目的表是一张新闻表,其中有字段:NEWSID,CHANNELID,TYPE,TITLE,CONTENT;源表也是一张新闻表,但结构和字段名都与目的表不同,其中的字段为doctitle,doccontent...,我现在想将源表中的doctitle和doccontent字段中的数据追加到目的表中,但是CHANNELID和TYPE都不能为空,你还不能随便改目的表,因为程序可能需要就需要CHANNELID的值。
      

  6.   

    Haiwer兄弟:你说要导入一个新表,目的是什么,既然字段都和原来一模一样的话,那还是解决不了问题啊
      

  7.   


    将目标表字段不能为空的,设置为可以为空!insert       into       目的表(字段1,字段2.....)   
    select       字段1,字段2.....       from       dts导过来的表       where       条件       
      

  8.   

    你的空是null吗?把被导表数据的所有空置替换
      

  9.   

    空是NULL,还得请教LS的兄弟具体做法
      

  10.   

    将被导表的所有数据的null替换为特殊符号导入目标表后置为‘’我的想法,不知你的具体数据
    --示例
    declare @ta table(ID int,name varchar(20))
    insert into @ta select 1,'a'
    insert into @ta select 2,'b'
    insert into @ta select 3,nulldeclare @tb table(NID int not null,Nname varchar(20) not null)insert into @tb select isnull(ID,0),isnull(name,'') from @ta
    select * from @tb
    --
    --NID         Nname
    ------------- --------------------
    --1           a
    --2           b
    --3           
      

  11.   

    目的表:DOCDOCUMENT
    DOCID  DOCCHANNEL CLASSID DOCTYPE     DOCTITLE
     1          0        0        1      火箭取得三连胜
     2          1        0        1      国际米兰取得8连胜
     ...        ...      ...      ..       .....
      其中:DOCID是主键,其他字段均不能为空源表:NEWS(这个表中没有设置主键)
    ID      TITLE      AUTHOR   TYPE
     1     国足的信息     不详     0 
     2     雪灾的信息     不详      0注意:目的表和源表的字段不是一一对应的,也就说目的表的有些字段源表没有,
    就算有也不是目的表字段所表示的意思,现在想将源表中的TITLE中的数据复制
    到目的表的DOCTITLE中,但是其他字段是不能为空的,又不能乱改目的表,列
    映射的时候主键还不能重复