前两天在作将mysql的数据表导入到sqlserver当中。html
本人比较愚笨,操做方法 是先将mysql的数据表处处为insert脚本,再在sqlserver中执行sql脚本mysql
在网上看了一下那些方法 ,感受很迷,若是有更好更简单的办法请大神指教。毕竟这种办法真的仍是挺痛苦的。好比我有一张表的数据有10W条。哇塞,根本不能直接插入,须要分段来,并且还要去掉mysql字段会自动加的分号。数据多了真的很痛苦,电脑有时候还要直接卡死。sql
遇到了 两个问题。数据库
第一:若是mysql中的主键是自动增加的话,直接插入会报:sqlserver
解决办法,在插入以前写上这么一句:SET IDENTITY_INSERT table ONspa
固然在insert完成以后不要忘记关闭: SET IDENTITY_INSERT table OFF3d
若是不关闭的话 你在下次再想对另一张表这样操做的时候,又会报错server
因此,你打开了就要记得关上。htm
第二:vachar(n)在两种数据库中的区别。blog
在导入数据的时候,我就明显感受到mysql中的vachar(400)要比sqlserver中的vachar(400)存入的数据更多。若是数据库中字段长度不够的时候就会报:将截断字符串或二进制数据
而后就谷歌了一下究竟是什么区别。
而后得知 在mysql5.0版本以上,vachar(n)能够存放的 字符个数就是n,而sqlserver中的vachar(n),这里的n表示的是 字节数,因此sqlserver中的 vachar(n)就只能存放mysql的 一半吧。
要想将mysql的vachar(n)转换到sqlserver中,最好sqlserver存入vachar(2n)吧,这样能保证你的全部数据都不会报“将截断字符串或二进制数据”这个错误
这里有一篇博文介绍了mysql中vachar的 详情,我的感受还比较能够,附上连接:
MySql中的varchar类型:http://www.cnblogs.com/doit8791/archive/2012/05/28/2522556.html