一、导出导入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企业管理器里选中目的数据库 ,按鼠标右键,选所有任务-导入数据- 弹出数据转换服务导入/导出向导窗口-下一步-选数据源- 数据源(用于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企业管理器里选中目的数据库,按鼠标右键,选所有任务- 导入数据-弹出数据转换服务导入/导出向导窗口-下一步-选数据源- 数据源(用于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)
调用导入/导出工具-弹出数据转换服务导入/导出向导窗口-下一步-选数据源- 数据源(文本文件)-文件名(已传到目的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\tnsnames.ora里配置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企业或者个人版数据库做中转。
在虚拟机中打开运行输入cmd
在弹出的命令行中输入:exp用户名/密码@远程oralce数据库的IP:端口号/实例file=存放位置:\文件名.dmpfull=y。
如果不是dba的话会有如下提示
root用户下首先切换到oracle用户命令: su-oracle
导出命令格式如下:expuser/pwd@SIDfile=path/sth.dmp其中:user/pwd是你要导出的表空间的oracle用户的用户名与密码;SID为oracle启动实例,一般为orcl。path是你导出的路径;请注意最后面的sth.dmp不能少。
导入dmp文件-在oracle用户下:两种方法[oracle@system~]impuser/passwdfileName=fielPathfull=y(full不能少)
导入导出在oracle用户下,文件file=路径+dmp的文件名,都不能少。
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中\x0d\x0a exp system/manager@TEST file=d:\daochu.dmp full=y\x0d\x0a2 将数据库中system用户与sys用户的表导出\x0d\x0a exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)\x0d\x0a3 将数据库中的表table1 、table2导出\x0d\x0a exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) \x0d\x0a4 将数据库中的表table1中的字段filed1以"00"打头的数据导出\x0d\x0a exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"\x0d\x0a \x0d\x0a 上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。\x0d\x0a 不过在上面命令后面 加上 compress=y 就可以了
1、打开oracle数据库,点击登陆选项,点击文件选项,点击新建选项,最后点击sql窗口;
2、然后在sql窗口中进行编写sql语句的操作,勇sql语句进行查询出想要导出来的数值;
3、然后在查询出来数据的地方,不要选中数据,把鼠标放到空白单元格处进行鼠标右键操作,找到复制到Excel选项;
4、然后在复制到excel中选择想要保存的格式--作为xls保存,打开后则是excel形式的数据;
5、默认的保存路径--将鼠标放在excel名称上--会出现路径--根据路径打开即可。
1、首先通过tode创建或者克隆新的数据库用户,如下图所示。
2、导出目标表准备好,空表无法导出表结构,然后打开运行命令,导出目标用户test所有数据库相关信息,如下图所示。
3、输入完成后,点击键盘上的回车,等待一会如下图所示。
4、最后导入目标用户new所有数据库相关信息,如下图所示。
5、最后如下图所示,就导出完成了。
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件, imp命令可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。下面介绍的是导入导出的实例。(注意:不用连接到SQL/plus,直接在DOS下就可以导出。)
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 exp system/manager@TEST file=d:daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出 exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出 exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'" 上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。 也可以在上面命令后面 加上 compress=y 来实现。
数据的导入:
1 将D:daochu.dmp 中的数据导入 TEST数据库中。 imp system/manager@TEST file=d:daochu.dmp imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。 在后面加上 ignore=y 就可以了