SQL Server导出导入数据方法

本文详细介绍了 SQLServer 数据库的迁移方法,包括整个数据库、单个表、存储过程及用户定义函数的迁移流程,并提供了跨防火墙及不同局域网环境下的解决方案。

http://www.sudu.cn/info/html/edu/database/20040921/135826.html

SQL Server导出导入数据方法 
 
 
 

  一、导出导入SQL Server里某个数据库
  1.在SQL Server企业管理器里选中要转移的数据库,按鼠标右键,选任何任务->备份数据库
  
  2.备份 选数据库-完全,
  目的 备份到 按添加按钮
  文档名 在SQL Server服务器硬盘下输入一个自定义的备份数据库文档名(后缀一般是bak)
  重写 选重写现有媒体
  最后按确定按钮。
  假如生成的备份数据库文档大于1M,要用压缩工具压缩后再到Internet上传输。
  
  3.通过FTP或remote desktop或pcanywhere等方法
  把第二步生成的备份数据库文档或其压缩后的文档传到目的SQL Server数据库,假如有压缩要解压。
  
  4.目的SQL Server数据库假如还没有此数据库,先创建一个新的数据库www_bitscn_com
  然后选中这个新创建的数据库,按鼠标右键,选任何任务->还原数据库
  还原->从设备->选择设备->磁盘->添加(找到要导入的备份数据库文档名)->确定
  还原备份集->数据库-完全
  最后按确定按钮。完全的数据库导入成功了。
  (假如在已存在的SQL Server数据库上还原数据库可能碰到有更有其他人正在使用他而恢复操做失败,
  能够去看 ->管理->当前活动->锁/对象->找到数据库下锁的进程号->到查询分析器里用kill 进程号杀掉这些锁,
  然后再做还原)
  
  注意:假如在原有的目的SQL Server数据库上从备份文档(*.bak)还原数据库 DL.bitsCN.com网管软件下载
  会把已存在的表、存储过程等数据库对象全部替换成最近这次导入的备份数据库里的内容。
  
  假如一定要还原备份文档(*.bak)里部分数据,需要另外建一个新数据库,
  其逻辑名称和数量同备份文档(*.bak)里数据库的逻辑名称和数量一致;
  新数据库的物理文档名称取得一定要和备份文档(*.bak)里数据库的物理文档不相同才行。
  
  二、导出导入SQL Server里某个表
  1.没有防火墙,同一个局域网里或不在同一个局域网里,但通过Internet能够互相访问
  
  在SQL Server企业管理器里选中目的数据库 ,按鼠标右键,选任何任务->导入数据->
  弹出数据转换服务导入/导出向导窗口->下一步->
  
  选数据源-> 数据源(用于SQL Server的Microfost OLE DB提供程式)-> bitscn.com
  服务器(可选择局域网内能访问到的任何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身份验证(输入数据库的用户名和密码)->
DL.bitsCN.com网管软件下载

  数据库(可选择上面选中SQL Server服务器上任何权限范围内的数据库)->下一步->
  
  选择目的->目的(文本文档)-> 文档名(在自己的电脑硬盘中生成一个自定义的文本文档) ->下一步->
  
  定制表复制或查询->选从源数据库复制表和视图(也能够选择用一条查询指定要传输的数据)->下一步->
  
  选择目的文档格式->源(选择要导出的表)->用默认的带分隔符->选第一行包含有列名称选项->下一步->
  
  保存、调度和复制包->时间->立即运行(假如要实现隔一段时间自动导出到文本文档,选调度DTS包以便以后执行)->
  保存(能够不选)-> [保存DTS包(保存的时候要输入DTS的包名及周详描述)->下一步->]->完成
  
  正在执行包->图像界面显示表到文本文档的步骤和状态->完成
  
  假如生成的文本文档大于1M,要用压缩工具压缩后再到Internet上传输。
  
  ②、通过FTP或remote desktop或pcanywhere等方法把
  第①步生成的文本文档或其压缩后的文档传到目的SQL Server数据库,假如有压缩要解压。

www_bitscn_com


  
  ③、把文本文档导入目的SQL Server数据库
  直接把文本文档导入目的SQL Server数据库里跟文本文档同名的新表名时,默认的会把任何字段类型都变成字符串。
  
  所以我们要这样做:
  在源SQL Server数据库上先生成创建表的sql语句
  
  在SQL Server查询分析器里->选中源数据库里表名->按右键->在新窗口中编写对象脚本->创建->
  复制下新窗口内创建表名的sql语句
  
  到目标SQL Server数据库上查询分析器里执行创建表名的sql语句,生成空表结构。
  (假如已存在这样的表名,修改建表的sql语句,在表名后面加上导入时间的年月信息,例如table_0113)
  
  调用导入/导出工具->弹出数据转换服务导入/导出向导窗口->下一步->
  
  选数据源-> 数据源(文本文档)->
  文档名(已传到目的SQL Server数据库下要导入的文本文档,后缀能够不是*.txt,
DL.bitsCN.com网管软件下载

  但是常规文本编辑器能打开的文档,文档类型选全部)->下一步->
  
  选择文档格式->用默认的带分隔符->选第一行包含有列名称选项->下一步->
  定制列分割符->逗号->下一步->
  
  选择目的->目的(用于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数据库服务器上。 bitsCN_com
  
  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 OD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值