网络编程
位置:首页>> 网络编程>> 数据库>> SQL Server导入导出数据方法(2)

SQL Server导入导出数据方法(2)

作者:余枫 来源:鹰仔的BLOG 发布时间:2007-08-17 09:50:00 

标签:SQL,Server,导入,导出

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的约束可以继承过来。
      导入视图时会把源视图里所有的真实数据导入成一个新表,而不是视图。
     
提示:如果一次要导出几个到几十个表,可以用新建简单恢复模式临时库的方法。
   先将要导出的多个表生成到临时库里,然后收缩数据库,分离数据库,压缩相关物理文件;
     然后用网络传压缩好的文件到目的机器,解压缩,附加数据库;
     最后在当前机器上用数据导出导入工具来导到目的数据库里。
     
0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com