100分求解======异类数据库:从MySql到Sql Server 的数据导入

moluotuo 2009-08-13 06:25:57
将数据从MySql 中导入到Sql Server中

用SqlServer2005的导入工具将数据从MySql 中导入到Sql Server中时,有部分表导入不成功,部分错误提示不能将Null值插入某列,但是实际上插入的不是Null

如果各位有其他好的办法,还望各位指导,
感激不尽
...全文
277 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
yhy1987 2011-02-11
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 wlzd3636 的回复:]
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
……
[/Quote]
我也遇到这样的问题,就是好像人家说2005以后就不支持那个了,用17楼说的方法可以,如果数据量太大的话不知道得弄多久
ddff2004 2010-04-01
  • 打赏
  • 举报
回复
不用找其它的odbc源,就用第一个选项,.net data provider for odbc,然后在dns中输入你配置的mysql的dns名,后面的就一步一步下去,不过这个是基于查询方式来做的,比如你想从a表到数据,你需要在后面的提供源里面输入select * from a,然后一步一步就下去了,数据量大速度会比较慢
marshallzh 2010-02-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lihan6415151528 的回复:]
可以先导出到excel 之后再倒入sqlserver么
[/Quote]

我的数据远远超过65536条, 所以不行……
marshallzh 2010-02-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 fredrickhu 的回复:]
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数据库中。

[/Quote]

这个方法貌似行不通。
“选择数据源为其它(ODBC数据源)”, 我是sql server 2005, 在安完了odbc的驱动后,找不到“其它(ODBC数据源)”。请问有没有人遇到同样情况?
wlzd3636 2009-08-17
  • 打赏
  • 举报
回复
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
moluotuo 2009-08-14
  • 打赏
  • 举报
回复
继续等待
moluotuo 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lihan6415151528 的回复:]
可以先导出到excel 之后再倒入sqlserver么
[/Quote]
我用过 也不成功
moluotuo 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 fredrickhu 的回复:]
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数据库中。

[/Quote]
我就是用的这种方法 这篇文章在网上流传的很多,都是一字不差拷贝的 但是真正用的时候却。。。
--小F-- 2009-08-14
  • 打赏
  • 举报
回复
方法很多,不过建议你先看看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
konj 2009-08-14
  • 打赏
  • 举报
回复
是否数据类型匹配
--小F-- 2009-08-14
  • 打赏
  • 举报
回复
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数据库中。
lihan6415151528 2009-08-14
  • 打赏
  • 举报
回复
可以先导出到excel 之后再倒入sqlserver么
moluotuo 2009-08-14
  • 打赏
  • 举报
回复
没有人都没碰到过这种问题吗
moluotuo 2009-08-13
  • 打赏
  • 举报
回复
在线等
绿绦 2009-08-13
  • 打赏
  • 举报
回复
学习




moluotuo 2009-08-13
  • 打赏
  • 举报
回复
用数据导入功能的时候
有一些表根本就是无法创建
有的是创建好了但是数据没有导入
有的是创建好了,数据也导入好了
moluotuo 2009-08-13
  • 打赏
  • 举报
回复
谢谢 但是数据库中的表很多,我觉得是不是Sql Server2005自带的 DTS工具兼容性不好呢,
有没有比较快的方法实现数据导入
-狙击手- 2009-08-13
  • 打赏
  • 举报
回复
--连接mysql

安装MySQL的ODBC驱动MyODBC

1、为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为 myDSN

2、建立链接数据库
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 表' )

红色部分加判断

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧