文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程MSSQLSQL Server中导入导出数据的三种方式
精品推荐
特别推荐
·SQL Server企业管理器和查询分析器简介
·常用SQL语句词典
·结束SQL注入隐患3招
·掌握SQL Server数据库的实用技巧
·SQL的简单查询
·快速解决SQL Server“安全疑难”相关问题
·SQL Server 2005:你应知道的13件事
·实例解析:减少SQL日志大小的三个好方法
·使用SQL2000将现有代码作为Web服务提供
·sql server 2000数据库置疑的解决方法
·SQL Server安全问题全攻略之口令
·XP上不能安装MicrosoftSQLSERVER2000吗
·解析Microsoft Sql Server中的like语句
·推荐;适合SQL初学者学习的SQL FAQ集锦
·SQL Server 2005 中的分区表和索引
·查询及删除重复记录的方法大全
·详细介绍优化SQL Server 2000的设置
·关于SQL SERVER 日志满的处理方法
·使用SQL Server 2000索引视图提高性能
·SQL server 2005安装问题汇总
热点TOP10
·SQL server 2005安装问题汇总
·常用SQL语句词典
·Sql server优化50法
·SQL2000 数据库安装说明
·SQL Server 2005 中的分区表和索引
·SQL Server 练习题
·巴塞尔新资本协议概述
·用SQL批量插入数据
·提高查询速度:SQL Server数据库优化方案
·SQL SERVER中的union,cube,rollup和cumpute运算符
·查询及删除重复记录的方法大全
·把SQL SERVER里表里的数据导出成为insert into 脚本
·解决用sa登录sql 2005失败的问题
·在SQL Server 2000里设置和使用数据库复制
·sql server日期时间函数
·Sql数据库MDF数据文件数据库恢复
·sql 经典语句
·解决方案 用户 sa 登录失败
·SQL Server 2005免费版本下载排行居首
·安装Ms SQL Server 2005 开发版时出现性能计数器要求安装错误的解决办法

SQL Server中导入导出数据的三种方式

日期:2007年12月14日 作者: 查看:[大字体 中字体 小字体]


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

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

一、使用方式的比较

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

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

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

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

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

(1) 调用方式不同。

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

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

SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=abc.mdb;Persist Security
Info=False')...
table1

OPENROWSET相当于一个记录集,可以将直接当成一个表或视图使用。

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

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'abc.mdb';
'admin';'','SELECT * FROM table1')

(2) 灵活度不同。

OPENDATASOURCE只能打开相应数据库中的表或视图,如果需要过滤的话,只能在SQL Server中进行处理。而OPENROWSET可以在打开数据库的同时对其进行过滤,如上面的例子,在OPENROWSET中可以使用SELECT * FROM table1对abc.mdb中的数据表进行查询,而OPENDATASOURCE只能引用table1,而无法查询table1。因此,OPENROWSET比较OPENDATASOURCE更加灵活。

2. 使用命令行BCP导入导出数据

很多大型的系统不仅仅提供了友好的图形用户接口,同时也提供了命令行方式对系统进行控制。在SQL Server中除了可以使用SQL语句对数据进行操作外,还可以使用一个命令行工具BCP对数据进行同样的操作。BCP是基于DB-Library 客户端库的工具。它的功能十分强大,BCP能够以并行方式将数据从多个客户端大容量复制到单个表中,从而大大提高了装载效率。但在执行并行操作时要注意的是只有使用基于 ODBC 或 SQL OLE DB 的 API 的应用程序才可以执行将数据并行装载到单个表中的操作。

BCP可以将SQL Server中的数据导出到任何OLE DB所支持的数据库的,如下面的语句是将authors表导出到excel文件中。

bcp pubs.dbo.authors out c:\temp1.xls

[1] [2] 下一页 




上一篇:Linux操作系统下用单网卡捆绑双IP

下一篇:SQL Server用索引视图查看性能状况

SQL Server中导入导出数据的三种方式 相关文章:
·另类阴道玩弄方式
·EasyRecovery 604硬盘数据恢复软件技巧
·SQL server 2005安装问题汇总
·男人疼爱女人的方式
·四种有害的自慰方式
·彩虹QQ显IP V2.0 创新性显IP方式
·asp.net(C#)海量数据表高效率分页算法(易懂,不使用存储过程)
·Sql server优化50法
·C#源码读取excel数据到程序中-SQL SERVER-到dataset中
·SQL2000 数据库安装说明
SQL Server中导入导出数据的三种方式 相关软件:
·SQL Server 2000 基础系列课程视频
·Windows 2003 Server 简体中文企业版(免激活)ISO
·ACCESS数据库教程 北京大学的ACCESS教程
·爆出网站数据库路径
·Microsoft SQL Server 2005 Enterprise Edition SP1简体中文企业版
·逐步精通数据库 sql server 视频教程
·简体中文 Windows 2000 Server 培训教程
·MS SQL Server 2000 四合一
·SQL/MYSQL/数据库教程专栏
·NBA live 2006 繁体中文版 模拟方式免CD补丁

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn