网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > MSsql > SQL Server中数据导入导出三种方法  

SQL Server中数据导入导出三种方法

2008-05-04  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

    当我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验、净化和转换时,将会面临很大的挑战。幸好SQL Server为我们提供了强大、丰富的数据导入导出功能,并且在导入导出的同时可以对数据进行灵活的处理。

网管网www_bitscn_com

  在SQL Server中主要有三种方式导入导出数据:使用Transact-SQL对数据进行处理;调用命令行工具BCP处理数据;使用数据转换服务(DTS)对数据进行处理。这三种方法各有其特点,下面就它们的主要特点进行比较。 网管u家u.bitscn@com

  一、使用方式的比较 网管论坛bbs_bitsCN_com

  1. 使用Transact-SQL进行数据导入导出 网管bitscn_com

  我们很容易看出,Transact-SQL方法就是通过 SQL语句方式将相同或不同类型的数据库中的数据互相导入导出或者汇集在一处的方法。如果是在不同的SQL Server数据库之间进行数据导入导出,那将是非常容易做到的。一般可使用SELECT INTO FROM和INSERT INTO。使用 SELECT INTO FROM时INTO后跟的表必须存在,也就是说它的功能是在导数据之前先建立一个空表,然后再将源表中的数据导入到新建的空表中,这就相当于表的复制(并不会复制表的索引等信息)。而INSERT INTO的功能是将源数据插入到已经存在的表中,可以使用它进行数据合并,如果要更新已经存在的记录,可以使用UPDATE。

网管联盟bitsCN@com

  SELECT * INTO table2 FROM table1 --table1和table2的表结构相同 网管论坛bbs_bitsCN_com

  INSERT INTO table2 SELECT * FROM table3 --table2和table3的表结构相同

网管bitscn_com

  当在异构数据库之间的进行数据导入导出时,情况会变得复杂得多。首先要解决的是如何打开非SQL Server数据库的问题。 网管u家u.bitscn@com

  在SQL Server中提供了两个函数可以根据各种类型数据库的OLE DB Provider打开并操作这些数据库,这两个函数是OPENDATASOURCE和OPENROWSET。它们的功能基本上相同,不同之处主要有两点。 中国网管论坛bbs.bitsCN.com

  (1) 调用方式不同。 网管u家u.bitsCN.com

  OPENDATASOURCE的参数有两个,分别是OLE DB Provider和连接字符串。使用OPENDATASOURCE只相当于引用数据库或者是服务(对于SQL Server、Oracle等数据库来说)。要想引用其中的数据表或视图,必须在OPENDATASOURCE(...)后进行引用。

中国网管论坛bbs.bitsCN.com

  在SQL Server中通过OPENDATASOURCE查询Access数据库abc.mdb中的table1表

网管联盟bitsCN@com

   

 以下是引用片段:
  SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
  'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=abc.mdb;Persist Security
  Info=False')...
  table1
    
    OPENROWSET相当于一个记录集,可以将直接当成一个表或视图使用。

网管下载dl.bitscn.com

  在SQL Server中通过OPENROWSETE查询Access数据库abc.mdb中的table1表

网管u家u.bitsCN.com

   

网管bitscn_com

 以下是引用片段:
  SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'abc.mdb';
  'admin';'','SELECT * FROM table1')
中国网管论坛bbs.bitsCN.com

网管网www_bitscn_com


TAGs
 上一篇:使用SQL Server 2008进行预测分析   下一篇:SQL Server 2008之行值构造器
SQL Server中数据导入导出三种方法 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: