可以两个datatable,分别取自两个不同数据库,然后插入,当然还可以跨库操作

解决方案 »

  1.   

    方法1.如果用sql语句操作 ,那么两个数据要建立链接
    方法2. 否则先从数据库A取出数据,生成sql语句后再插入数据库B
      

  2.   

    insert into 新表(select * from 旧表)!
      

  3.   

    如果两个数据库是在同一个服务器里面,那么可以用这个语句插入
    insert into A.dbo.table1 select * from B.dbo.table
      

  4.   


    不是同一个服务器,同一个服务器我就没必要做这个操作了。假设您现在程序连的是服务器A上的库A,在这环境下可以创建一个访问服务器B上的库B的连接,然后对服务器B上的库B进行读写操作。前提是服务器B要设置为允许访问
      

  5.   

    1.在数据库层面可以考虑复制方式
    2.C#中要连接两个库,读取完数据放入到dbtable中,然后循环写入数据库B中表,如果数据量特别大,可以先存成文本,通过读取文件批量插入。
      

  6.   

    建DBLINK, 然后用insert into A.dbo.table1 select * from B.dbo.table
      

  7.   

    网上搜索了一下,找到了解决办法。
     using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(conStr))
                    {
                        //指定目标数据库的表名
                        bcp.DestinationTableName = "ma_mc_info";
                        //建立数据源表字段和目标表中的列之间的映射
                        bcp.ColumnMappings.Add("id", "id");
                        bcp.ColumnMappings.Add("m_code", "m_code");
                        bcp.ColumnMappings.Add("m_desc", "m_desc");
                        bcp.ColumnMappings.Add("m_searchcode1", "m_searchcode1");
                        bcp.ColumnMappings.Add("m_searchcode2", "m_searchcode2");
                        bcp.ColumnMappings.Add("i_id", "i_id");
                        bcp.ColumnMappings.Add("i_tid", "i_tid");
                        //写入数据库表 dt 是数据源DataTable
                        bcp.WriteToServer(dt);
                        //关闭SqlBulkCopy实例
                        bcp.Close();
                    }