将数据从MySql 中导入到Sql Server中用SqlServer2005的导入工具将数据从MySql 中导入到Sql Server中时,有部分表导入不成功,部分错误提示不能将Null值插入某列,但是实际上插入的不是Null如果各位有其他好的办法,还望各位指导,
感激不尽

解决方案 »

  1.   

    --连接mysql安装MySQL的ODBC驱动MyODBC1、为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为 myDSN2、建立链接数据库
    EXEC sp_addlinkedserver  @server = 'MySQLTest', @srvproduct='MySQL', @provider = 'MSDASQL', @datasrc = 'myDSN'
    GO
    EXEC sp_addlinkedsrvlogin  @rmtsrvname='MySqlTest',@useself='false',@locallogin='sa',@rmtuser='mysql的用户名',@rmtpassword='mysql的密码'3、查询数据SELECT isnull(col,'sad')...... FROM OPENQUERY (MySQLTest ,'select * from 表' )红色部分加判断 
      

  2.   

    谢谢 但是数据库中的表很多,我觉得是不是Sql Server2005自带的 DTS工具兼容性不好呢,
    有没有比较快的方法实现数据导入
      

  3.   

    可以先导出到excel 之后再倒入sqlserver么
      

  4.   

    1.安装mysql数据库的ODBC驱动,mysql-connector-odbc-3.51.19-win32.msi  2.打开控制面板\管理工具\数据源ODBC,在用户DSN中添加一个MySQL ODBC 3.51数据源。  3.在登录login选项卡中输入数据源名称Data Source Name,此处输入MysqlDNS;然后输入服务器Server,用户User,密码Password,输入正确后选择要导入的数据库。在连接选项connect options中根据需要设置MySql使用的端口port和字符集Character Set。  注:字符集一定要和Mysql服务器相对应,如果Mysql使用了gbk字符集,则一定要设置字符集为gbk,否则导入到Sql Server可能会出现问号乱码。  4.打开sql server企业管理器,新建一数据库MySql。选择该数据库,单击右键选择所有任务\导入数据。  5.选择数据源为其它(ODBC数据源),用户/系统DSN为MysqlDNS。其余根据向导进行,即可将数据从MySql数据库导入到MSSQL数据库中。
      

  5.   

    方法很多,不过建议你先看看mysql的开发文档,里面写的很详细的,如果你懒得看,可以看下面的 
    1.有个软件PHP Excel Parser Pro v4.2可以,你可以在这里下载:http://down.chinaz.com/s/9459.asp 2.可将Excel存成csv格式。然后通过phpmyadmin倒入mysql 
    3.先导入Access中,再弄到MySQL中,或者自己写程序读出excel中数据然后存入mysql中 
    4.还有一个比较笨的手工方法,就是先利用excel生成sql语句,然后再到mysql中运行,这种方法适用于excel表格导入到各类sql数据库: 一、假设你的表格有A、B、C三列数据,希望导入到你的数据库中表格table,对应的字段分别是col1、col2、col3 二、在你的表格中增加一列,利用excel的公式自动生成sql语句,具体方法如下: 1、增加一列(假设是D列) 2、在第一行的D列,就是D1中输入公式: 
    =CONCATENATE("insert into table (col1,col2,col3) values ('",A1,"','",B1,"','",C1,"');") 3、此时D1已经生成了如下的sql语句: 
    insert into table (col1,col2,col3) values ('a','11','33'); 4、将D1的公式复制到所有行的D列(就是用鼠标点住D1单元格的右下角一直拖拽下去啦) 5、此时D列已经生成了所有的sql语句 6、把D列复制到一个纯文本文件中,假设为sql.txt 三、把sql.txt放到数据库中运行即可,你可以用命令行导入,也可以用phpadmin运行。 
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/nb_cds/archive/2007/06/13/1649967.aspx
      

  6.   

    1 安装 mysql odbc 5.1 connector  (根据你的mysql 版本来安装 5.1)2 判断你的mysql 字符集 是否是 utf8 或者 gbk 3 假设你的字符集 不和mssql的字符集兼容 
      1 把mysql的 字符集改成 utf8 可以在 windows my.ini linux 是 my.cnf 改参数 改之前备份下 my.ini/my.cnf
      2 如果改好后原来 数据出现乱码 着 吧备份的 my.ini/my.cnf 覆盖掉 
        1 导出csv  2 或者 把原来数据转换成 utf8 cast(column using 'utf8')
      3  在用ssis readerdata 
      

  7.   


    这个方法貌似行不通。
    “选择数据源为其它(ODBC数据源)”, 我是sql server 2005, 在安完了odbc的驱动后,找不到“其它(ODBC数据源)”。请问有没有人遇到同样情况?
      

  8.   

    不用找其它的odbc源,就用第一个选项,.net data provider for odbc,然后在dns中输入你配置的mysql的dns名,后面的就一步一步下去,不过这个是基于查询方式来做的,比如你想从a表到数据,你需要在后面的提供源里面输入select * from a,然后一步一步就下去了,数据量大速度会比较慢