问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何将sql2000的数据库导入到mysql中?

发布网友 发布时间:2022-04-30 22:17

我来回答

3个回答

懂视网 时间:2022-05-01 02:39

首先参照这里:http://www.jb51.net/softjc/158485.html

最好odbc用现在mysql官网上推荐的5.1.XX版本,因为要与jdk和tomcat的系统版本保持一致,

所以本人下的是winX86--32bit版本的odbc驱动包。各位随意啦~

 

win7x64位系统如何装32位的odbc驱动,请看这篇文章:http://www.cnblogs.com/hangaozu/p/5374968.html

 

然后,看这个图点OK:

技术分享 热心网友 时间:2022-04-30 23:47

先用SQl2000导出文本文件,把后缀名改为CSv,再从Mysql中一导入OK

参考:第一种是安装mysql ODBC,利用sql server的导出功能,选择mysql数据源,进行数据的直接导出,这种方法很简便,但是针对实际应用有很多弊端,最主要体现就是数据类型问题,首先,sql server数据库中的ntext,image等数据类型的数据无法直接写入到mysql数据库中,据说只要稍加改动就可以,可惜偶这只菜鸟还没想到如何改动,其次,因为偶在mysql中的数据库设计中将时间都设成int型(保存的是时间戳),所以在数据导过来后,就会出现冲突,再次,这种方法生成的mysql数据表的字段类型都不很合适,所以此种方法我觉得不能提倡。第二种是利用php或asp脚本来实现数据的导入功能,这种方法需要编写程序,但灵活性大,操作也不是那么困难,一切都尽在你的掌握之中,现简单介绍一下该方法前提条件是你的mysql环境已经搭建好了,先建好目标数据库,再将所有的表结构用sql语句生成,现在万事具备,只缺数据了。可以通过下面的php脚本来实现sql server中mydb数据库的user表中数据向mysql中mydb数据库导入$cnx = odbc_connect('web', 'admin', '123456');//'web'是sqlserver中mydb的数据源名,'admin'是访问mydb的用户名,'123456'是访问mydb的密码$cur= odbc_exec( $cnx, 'select * from user' );//打开sql server中mydb数据库的user表$num_row=0;$conn=mysql_pconnect("localhost","root","123456");// 连接mysql@mysql_select_db('mydb',$conn) ordie("无法连接到数据库,请与管理员联系!");//打开mysql的mydb数据库while( odbc_fetch_row( $cur )) //从sql server的mydb库中的user表逐条取出数据,如果对数据进行选择,可在前面的select语句中加上条件判断{$num_row ;$field1 = odbc_result( $cur, 1 ); // 这里的参数i(1,2,3..)指的是记录集中的第i个域,你可以有所选择地进行选取,fieldi得到对应域的值,然后你可以对fieldi进行操作$field2 = odbc_result( $cur, 2 );$field3 = odbc_result( $cur, 3 );$field4 = odbc_result( $cur, 4 );$field5 = odbc_result( $cur, 5 );$field6 = odbc_result( $cur, 6 );$field5 = timetoint($field5); //这里是对sql server中的datetime类型的字段进行相应转换处理,转换成我所需要的int型$querystring = "insert into user (id,name,username,password,recdate) values('$field1','$field2','$field3','$field4','$field5')" ; mysql_query($querystring,$conn);}function timetoint($str){ $arr1=split(" ",$str); $datestr=$arr1[0]; $timestr=$arr1[1]; $arr_date=split("-",$datestr); $arr_time=split(":",$timestr); $year=$arr_date[0]; $month=$arr_date[1]; $day=$arr_date[2]; $hour=$arr_time[0]; $minute=$arr_time[1]; $second=$arr_time[2]; $time_int=mktime($hour,$minute,$second,$month,$day,$year); return $time_int;}?> 将该段脚本存成sql.php,在服务器上执行,就可以将服务器上sql server中mydb数据库的user表中的数据导入到mysql中mydb数据库的user表中去。其他表的操作与此雷同,就不赘述了。下面再介绍一下asp脚本实现sql server中mydb数据库的数据向mysql中mydb数据库导入<set conn=server.createobject("adodb.connection")conn.open 'web', 'admin', '123456' // 'web'是sqlserver中mydb的数据源名,'admin'是访问mydb的用户名,'123456'是访问mydb的密码set rs=server.createobject("adodb.recordset")sql="select ID,name,username,password,datediff(s,'1970-01-01 00:00:00',recdate)-8*3600,reid,filename,fileContentType,filevalue from senddate" //这条sql语句实现了将datetime类型的recdate字段转化成unix时间戳的int型rs.open sql,conn,1,3set conn1=server.createobject("adodb.connection")conn1.open "myoa","root","q1-d6=7?"i=1do while not rs.eof field1 = rs(0) field2 = rs(1) field3 = rs(2) field4 = rs(3) field5 = rs(4) sql1 = "insert into user(ID,name,username,password,recdate) values("&field1&",'"&field2&"','"&field3&"','"&field4&"',"&field5&")" conn1.execute sql1rs.movenexti=i 1looprs.closeset rs=nothingconn.closeset conn=nothingconn1.closeset conn1=nothingt; 以上两个是分别采用php脚本和asp脚本对user表的数据进行由sql server到mysql的导入其间我采用2种回避的方法来避免ntext,image类型数据的传递,一种是将ntext字段改为nvarchar(4000),因为实际情况,原始数据中该字段的数据长度都未超过4000个字,所以并没有出现数据截断,另一个手段是将image类型数据取出来写到文件中,以文件形式保存,将文件路径存到数据库中,方法见下:function makeattach(fileContentType,filevalue,i) select case fileContentType case "application/msword" ext="doc" case "application/vnd.ms-excel" ext="exl" case "application/vnd.ms-powerpoint" ext="pps" case "application/x-rar-compressed" ext="rar" case "application/x-zip-compressed" ext="zip" case "image/gif" ext="gif" case "image/pjpeg" ext="jpg" case "text/plain" ext="txt" case else ext="x" end select if ext<>"x" then set fso=server.createobject("FileSystemObject") fName="attech"&i&"."&ext Dir="d:attach" If fso.FileExists(Dir & fName) Then fso.deletefile Dir & fName If fName<>"" AND NOT fso.FileExists(Dir & fName) Then Set strm1=Server.CreateObject("ADODB.Stream") strm1.Open strm1.Type=1 'Binary strm1.Write filevalue strm1.SaveToFile Dir & fName,2 Set strm1=Nothing end if makeattach=fName end ifend function 这个函数有3个输入参数,第一个是文件的contentType,第二个是文件的二进制数值,第三个是个可以区别文件名的变量,先根据contentType确定所存文件的后缀名,然后就是将二进制数值保存成指定文件名的文件,并将文件名作为输出参数返回,将返回的参数作为数据写到mysql的数据库中保存

热心网友 时间:2022-05-01 01:05

内容不算复杂的话自己写个程序倒吧。。。比找工具快
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在爱水APP哪个模块中可以填写个人信息,查询自己一天的饮水量? 黄金为什么是避险产品 避险买什么 避险品种是什么 避险产品什么意思 什么是避险产品 ...对联和我们平时使用的印章,说说使用了哪几个字体 对联上写的是什么字 ...有一空是让我评价我自己,请各位哥哥姐姐帮帮忙,帮我编一段,往好了... 艾灸用品哪种好 怎么画熊猫人 问一下中国六代火龙歼击机是怎么回事?(现在地球人最先进的也就5代吧~还是实验阶段)如题 谢谢了 霹雳火龙丹丹扮演者 怎么用PS做中国联通的图标 啊 中国联通logo怎么做 用photoshop 如何把logo图(jpg格式)给勾出来做素材?如下图,不要白色的底色,只要联通logo,操作过程? 大哥~大姐们!请问坐高铁可以带多重的东西,我的东西有点多,会不会不让带啊!要是不让带那我怎么把东西 如何在12306上咨询高铁上携带物? 我想找个联通图标做头像,在哪里下载好? 5g联通logo 别人坐高铁捎的东西,我怎样进高铁站取? 办公室鱼缸摆放问题??? 中国联通的标志设计者 亲属坐北京到沈阳的高铁在阜新想让他带点东西可以吗? 什么听书软件什么类型的书都可以听? 坐高铁的时候不懂怎么坐可以让工作人员带你? 哪个软件可以让人坐高铁帮我送东西? 中国联通的最新标志是什么字体? 高铁可以帮忙带东西吗?你好 在礼仪交往中,有哪些主题应当忌谈 伊利股份长期持有可以不?伊利股份股票历史价格表?伊利股份跌停原因揭秘? 伊利股份股票为什么跌?伊利股份半年报2021?伊利股份多少钱可以买入? 河南大学专升本的录取分数线是多少? 伊利股份 怎么样?今天伊利股份大跌原因?伊利股份每年啥时候分红? 伊利股份天花板行情?伊利股份今年股价?伊利股份怎么老是跌? 伊利股份业绩超预期?伊利股份股价波动?伊利股份跌了几个点? 数码移动音响Q5怎么关闹钟 适合情侣看的电影有哪些 有哪些适合情侣观看的影片推荐? 有没有什么适合情侣看的电影 适合情侣看的电影有什么 u盘里的文件,打不开也删不掉? U盘文件打不开,也无法删除,怎么办 情侣看了感情会更升温的电影 电影推荐情侣看的 U盘里冒出一些奇怪的文件打不开删不掉怎么处理? 我的U盘里的文件打不开也删不掉,是不是中病毒了,我该怎么办? U盘里的文件打不开?删不掉?不能格式化是怎么回事? 我在U盘里存了新文件,而原来文件不见了,变成了这样既打不开又删不掉,不知是怎么回事? 用扑克牌解卦时一至十三各代表什么