生成插入sql的工具有:DBArtisan 选中要导的表后鼠标右键有 "create insert statements "
对于简单的、小数据量的表是可以的。
大数据量的就不行了,还是用db2move 吧
另外,如果源库、目标库的字段顺序不一致,只有用export/import 根据字段顺序排序后导出、导入了。
对于标识列,A类型的(generated always)的,只有使用load的identityoverride选项导入了。
把双方的mysql服务都停掉,直接把导出方的数据表文件(就是和数据库表名对应的frmmydmyi文件)拷到导入方(注意一个表有三个文件),然后改一下数据表文件名成你要导入的表名,然后启动mysql服务
,如果导入方原来的表有数据,可以把原来的数据用正常方式导出,然后在工具里面导入合并就可以了,
再有一个可行的方法就是自写代码一行一行的转移数据了
方法1:SQL Server 2008 自带的导出功能 逗任务 → 生成脚本地
1
打开sql server 2008 后,选择你要导出的数据库
2
在数据库上右击,选择任务→生成脚本
3
进入简介页面,直接点击下一步就可以了
4
选择对象页面,可以选择导出整个数据库的脚本,或者其中的部分表,很灵活
5
进入设置脚本选项,首先把导出的路径选择好
防止一会儿忘记设置路径,找不到导去哪里了
然后点击高级
6
在高级选项页面,在左侧找到要编写脚本的数据类型,然后在右侧的下拉框中选择架构和数据
这一步 *** 作千万不要忘记了!除非你不想要数据,只要表的结构。
之后回到编写选项的页面,点击下一步
7
要摘要页面,可以做个简单的检查,看前面的选择是不是您想要的
检查无误,点击下一步,开始执行
8
好了,导出成功啦 \(^o^)/
快快去你设置的路径找脚本吧
END
方法2:动软代码生成器
1
打开动软代码生成器,并连接上数据数
2
点击右侧的数据库脚本生成器
3
选择你要导出的数据库
4
选择保存的路径和名字,然后选择要导出的表,可以选择全部表或部分表
设置好后,点击生成
5
OK啦,是不是 So Easy
还有数据的导入先要知道么。
数据的导入
1
将d:\daochudmp
中的数据导入
test数据库中。
imp
system/manager@test
file=d:\daochudmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上
ignore=y
就可以了。
2
将d:\daochudmp中的表table1
导入
imp
system/manager@test
file=d:\daochudmp
tables=(table1)
基本上上面的导入导出够用了。
具体方法步骤如下:
1、使用一个MySQL管理工具:SQLyog,点击菜单栏“数据库”下拉的最后一项:
导出的格式如下:
2、要想转成Excel格式的只需手动将该表复制到Excel中去。
一、导出导入SQL Server里某个数据库
1在SQL Server企业管理器里选中要转移的数据库,按鼠标右键,选所有任务->备份数据库。
2备份 选数据库-完全,
目的 备份到 按添加按钮
文件名 在SQL Server服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是bak)
重写 选重写现有媒体
最后按确定按钮。
如果生成的备份数据库文件大于1M,要用压缩工具压缩后再到Internet上传输。
3通过FTP或者remote desktop或者pcanywhere等方法
把第二步生成的备份数据库文件或者其压缩后的文件传到目的SQL Server数据库,如果有压缩要解压。
4目的SQL Server数据库如果还没有此数据库,先创建一个新的数据库;
然后选中这个新创建的数据库,按鼠标右键,选所有任务->还原数据库
还原->从设备->选择设备->磁盘->添加(找到要导入的备份数据库文件名)->确定
还原备份集->数据库-完全
最后按确定按钮。完全的数据库导入成功了。
(如果在已经存在的SQL Server数据库上还原数据库可能遇到有还有其它人正在使用它而恢复 *** 做失败,
可以去看 ->管理->当前活动->锁/对象->找到数据库下锁的进程号->到查询分析器里用kill 进程号杀掉这些锁,然后再做还原)
注意:如果在原有的目的SQL Server数据库上从备份文件(bak)还原数据库会把已经存在的表、存储过程等数据库对象全部替换成最近这次导入的备份数据库里的内容。
如果一定要还原备份文件(bak)里部分数据,需要另外建一个新数据库,其逻辑名称和数量同备份文件(bak)里数据库的逻辑名称和数量一致;
新数据库的物理文件名称取得一定要和备份文件(bak)里数据库的物理文件不一样才行。
二、导出导入SQL Server里某个表
1没有防火墙,同一个局域网里或不在同一个局域网里,但通过Internet可以互相访问
在SQL Server企业管理器里选中目的数据库 ,按鼠标右键,选所有任务->导入数据-> d出数据转换服务导入/导出向导窗口->下一步->选数据源-> 数据源(用于SQL Server的Microfost OLE DB提供程序)->服务器(可选择局域网内能访问到的所有SQL Server服务器,或者直接输入IP地址)->选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->选择目的->目的(用于SQL Server的Microfost OLE DB提供程序)->服务器(默认为上一步里选中的导出服务器,也可以选其它局域网内能访问到的所有SQL Server服务器,或者直接输入IP地址)->目的数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步->选择源表和视图->在要导入的表和视图前面选中源->目的出现同样的表名(可以手工修改成别的表名)->转换->列映射和转换里面可以修改源表和目的表之间字段的对应关系,修改目的表字段的类型和长度等,并可以选择创建目的表,在目的表中增加行,除去并重新创建目的表,启用标志插入等选项->确定->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出导入数据,选调度DTS包以便以后执行)->保存(可以不选)->[ 保存DTS包(如果以后还要转移这批相同的数据,可以把本次导出导入的内容和步骤保存起来,存到SQL Server即可,保存的时候要输入DTS的包名及详细描述)->下一步-> ]->完成
正在执行包->图形界面显示创建表及插入记录的步骤和状态->完成
2经过防火墙,不在同一个局域网里
①、导出表里的数据到文本文件:
在SQL Server企业管理器里选中目的数据库,按鼠标右键,选所有任务-> 导入数据->d出数据转换服务导入/导出向导窗口->下一步->选数据源-> 数据源(用于SQL Server的Microfost OLE DB提供程序)->服务器(可选择局域网内能访问到的所有SQL Server服务器)->选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->选择目的->目的(文本文件)-> 文件名(在自己的电脑硬盘中生成一个自定义的文本文件) ->下一步->制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步->选择目的文件格式->源(选择要导出的表)->用默认的带分隔符->选第一行包含有列名称选项->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出到文本文件,选调度DTS包以便以后执行)->保存(可以不选)-> [保存DTS包(保存的时候要输入DTS的包名及详细描述)->下一步->]->完成
正在执行包->图形界面显示表到文本文件的步骤和状态->完成
如果生成的文本文件大于1M,要用压缩工具压缩后再到Internet上传输。
②、通过FTP或者remote desktop或者pcanywhere等方法把
第①步生成的文本文件或者其压缩后的文件传到目的SQL Server数据库,如果有压缩要解压。
③、把文本文件导入目的SQL Server数据库
直接把文本文件导入目的SQL Server数据库里跟文本文件同名的新表名时,默认的会把所有字段类型都变成字符串。
所以我们要这样做:
在源SQL Server数据库上先生成创建表的sql语句
在SQL Server查询分析器里->选中源数据库里表名->按右键->在新窗口中编写对象脚本->创建->复制下新窗口内创建表名的sql语句到目标SQL Server数据库上查询分析器里执行创建表名的sql语句,生成空表结构。(如果已经存在这样的表名,修改建表的sql语句,在表名后面加上导入时间的年月信息,例如table_0113)
调用导入/导出工具->d出数据转换服务导入/导出向导窗口->下一步->选数据源-> 数据源(文本文件)->文件名(已传到目的SQL Server数据库下要导入的文本文件,后缀可以不是txt,但是常规文本编辑器能打开的文件,文件类型选全部)->下一步->选择文件格式->用默认的带分隔符->选第一行包含有列名称选项->下一步->制定列分割符->逗号->下一步->选择目的->目的(用于SQL Server的Microfost OLE DB提供程序)->服务器(可选择目标局域网内能访问到的所有SQL Server服务器)-> 选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->选择源表和视图->修改目的表名为刚才创建的表名->转换(在目的表中追加行) ->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动把文本文件导入,选调度DTS包以便以后执行)->保存(可以不选)-> [保存DTS包(保存的时候要输入DTS的包名及详细描述)->下一步->]->完成
正在执行包->图形界面显示文本文件到表的步骤和状态->完成
如果要更改导入时间的年月信息的表名,例如table_0113到原来的表名,在企业管理器里把原来的表名改成table_old_0113,table_0113改名成table。这会对应用程序里频繁访问的表照成一定的中断。
注意:源表上的建的索引和主键约束不能用上面介绍的1和2方法转移过来,还需要手工来建索引和主键。
标志种子和not null的约束可以继承过来。
导入视图时会把源视图里所有的真实数据导入成一个新表,而不是视图。
三、SQL Server存储过程或用户定义的函数导出导入
1、导出存储过程或用户定义的函数成sql文件
在SQL Server企业管理器里选中源数据库,存储过程->单选或者多选中要转移的存储过程->用户定义的函数->单选或者多选中要转移的函数->按鼠标右键,选所有任务->生成SQL脚本->确定->在自己的电脑硬盘中生成一个自定义的sql文件->保存->正在生成SQL脚本->成功
2、如果目的数据库经过防火墙,不在同一个局域网里,要通过FTP或者remote desktop或者pcanywhere等方法把第1步生成的sql文件传到目的SQL Server数据库服务器上。
3、用查询分析器进入SQL Server目的数据库,从菜单里选文件->打开->打开查询文件->选中第1步生成的sql文件->点执行查询的绿色倒三角型快捷键->查询窗口里会出现执行后的消息(有时候可能因为存储过程和用户定义的函数之间有一定的依赖关系,会报一些错。
最好先执行用户定义的函数的sql文件,再执行存储过程的sql文件)
四、ORACLE数据库里表导入SQL Server数据库
1、在目的SQL Server数据库服务器上安装ORACLE Client软件或者ORACLE ODBC Driver 在$ORACLE_HOME\network\admin\tnsnamesora里配置ORACLE数据库的别名(service name)。
具体配置方法可以参考本站文章:客户端连服务器的注意事项
2、在WIN2000或者win2003服务器->管理工具->数据源(ODBC)->系统DSN(本机器上NT域用户都可以用)->添加->ORACLE ODBC Driver->完成->data source name 可以自定义,我一般填ORACLE数据库的sid标志,description里可以填ORACLE数据库详细描述,也可以不填->data source service name 填第1步定义的ORACLE数据库别名->OK。
(用户DSN和文件DSN也可以类似配置,但使用的时候有一些限制)
3、SQL Server的导入和导出数据工具里->选数据源-> 数据源(其它(ODBC数据源))->选第2步在ODBC里定义的系统DSN source name,用户名密码处填写ORACLE系统的用户名和密码->下一步->选择目的,选SQL Server数据库(跟上面第二点讲的一致,就不重复了)。
注意:在ORACLE表和SQL Server表之间'转换'那步很重要,可以改变默认的字段数据类型,如image->text,decimal->int
五、SQL Server数据库里表导入ORACLE数据库
方法一导出目的选通过ODBC数据源里定义的ORACLE数据库, 注意ORACLE里表名都是大写的我一般在ORACLE这边先生成好表结构,再选择SQL SERVER源表往ORACLE目的表里追加数据数据传输速度比方法二慢
方法二从SQL Server数据库导入数据到ORACLE数据库可以选择用Windows下ORACLE9i企业或者个人版数据库做中转。
db1为原数据库,db2为要导出到的数据库,fromtable 是要导出的表名
1方法一:
登录导出到的数据库,执行
create table fromtable select from db1fromtable;
2方法二:
在cmd下执行,mysqldump -u root -p db1 fromtable file=d:/fromtablesql; 输入秘密,root为用户名
登录db2 执行 source d:/fromtablesql;
3方法三:
登录db1 执行 select from fromtable into outfile "d:/fromtable txt"; 导出纯数据格式
登录db2 执行 load data infile d:/fromtable txt into table fromtable; 需要先建一张和原表结构一样的空表。
4建一个odbc连接,先导出到access中,再导出到另一个库中。
以上就是关于用命令行导出数据库中的一张表怎么导出啊全部的内容,包括:用命令行导出数据库中的一张表怎么导出啊、MySQL中如何把一个数据库中的表数据,导到另一个数据库的表中、怎么导出Sql Server数据库表结构和数据的脚本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)