SQL Server数据与Excel表的导入导出

时间:2022-02-25 02:15:05
几乎所有的数据库管理者或者是与数据库打过交道的朋友,几乎都或多或少的了解并使用过数据导入导出的功能以便完成支持诸如数据合并、归档和分析等任务,以及开发应用程序或升级数据库或服务器,而这一切的便利都已经被SQL Server中的数据转换服务(DTS)囊括其中,它提供了一套图形化工具和可编程对象,以帮助管理员和开发人员和需要进行数据维护的人员解决数据移动问题,其中包括将数据从分散的数据源中提取出来,并且转换、合并到一个或多个目标位置。可以将任务组、工作流操作以及约束条件收集起来形成DTS软件包,然后安排它定期运行或在某些事件发生后运行。

  首先我们来先认识一下什么是DTS,它是一组工具,用于在一个或多个数据源(如Microsoft SQL Server、Microsoft Excel或Microsoft Access)间导入、导出和转换各种数据。通过OLE DB(一种数据访问的开放式标准)提供连接,通过用于ODBC的OLE DB提供程序来支持ODBC(开放式数据库连接)数据源。

  在这里我们将以具体的实例来介绍DTS数据的导入导出功能。例:使用DTS向导导出自己建立的dmtjxxb数据库中的dmtjxxb_register表,到Excel表中。

  操作步骤为:

  (1)启动SQL Server企业管理器(Enterprise Manager)后,点击SQL Server组,选择指定的服务器,如此次操作的数据库是我本地的数据库,如图:

SQL Server数据与Excel表的导入导出

SQL Server企业管理器

SQL Server数据与Excel表的导入导出

本地数据库
选中要导出的数据库名称,点击鼠标右键,在弹出的菜单点击“所有任务”选择“导出数据”选项,如下图所示,就会弹出数据导入导出向导。

SQL Server数据与Excel表的导入导出

  (2)单击“下一步”按钮,打开选择数据源对话框,如下图所示:

SQL Server数据与Excel表的导入导出

  首先在“数据源”旁的下拉列表中选择数据源。在本例中选择Microsoft OLE DB Provider for SQL Server。如果使用SQL Server认证方式,则应输入访问数据库的合法用户账号和密码,在数据库旁的下拉列表中选择dmtjxxb,如果列表中没有列出您需要的数据库可以点击(刷新按钮)。

  (3)单击“下一步”按钮,打开“选择目的”对话框,如下图所示。在“目的”旁的下拉列表中选择Microsoft Excel97-2000。“文件名”选择一个你要导入的excel表中,本例以c:/test.xls为例(这里需要注意的是,文件名称是选择的,系统不能够自动创建文件,所以要建立这个test.xls文件。)

SQL Server数据与Excel表的导入导出

  (4)单击“下一步”按钮,打开“指定表复制或查询”对话框,如下图所示。在此处可以指定传递的内容,可以传递表或某一查询的数据结果集甚至于数据库对象。在本例中选择从源数据库复制表和视图(这样就把全部的数据导出来了)。

SQL Server数据与Excel表的导入导出

(5)单击“下一步”打开“选择表和视图对话框”对话框,如图所示。从中选择一个或多个表或视图进行传递。通过“预览”按钮可对将要传递的数据进行预览。

SQL Server数据与Excel表的导入导出

  (6)如果想定义数据转换时源表和目标表之间列的对应关系,则单击“转换”列的方格按钮,打开列映射和转换对话框,如下图所示。

SQL Server数据与Excel表的导入导出

其中各选项的含义如下:

  ·创建目的表:在从源表拷贝数据前首先创建目标表,在缺省情况下总是假设目标表不存在,如果存在则发生错误、除非选中了“除去并重新创建目的表”选项;

  ·删除目的表中的行:在从源表拷贝数据前将目标表的所有行删除,仍保留目标表上的约束和索引,当然使用该选项的前提是目标表必须存在;

  ·在目的表中追加行:把所有源表数据添加到目标表中,目标表中的数据、索引、约束仍保留。但是数据不一定追加到目标表的表尾,如果目标表上有聚簇索引,则可以决定将数据插入何处;

  ·除去并重新创建目的表:如果目标表存在,则在从源表传递来数据前将目标表、表中的所有数据、索引等删除后重新创建新目标表;

  ·启用标识插入:允许向表的标识列中插入新值。

  (7)在进行数据转换时,可以通过脚本语言(如J script Per script Vb script)对源表中的某一列施加某种运算(乘、除或将该分割成几列、或将几列合并成一列),然后再将这种结果复制到目标表。此时应选中“列映射和转换”对话框的“转换”标签页,并选中“在将信息复制到目的时对其进行转换”如下图所示:

SQL Server数据与Excel表的导入导出

 

(8)返回“选择源表和视图”对话框(即第5步的截图),单击“下一步”打开“保存、调度和复制包”对话框,如下图所示。

SQL Server数据与Excel表的导入导出

在默认选项区可以选择与包有关的操作:

  ·立即运行:表示立即运行包;

  ·用复制方法发布目的数据:表示让由发布目标来进行复制;

  ·调度DTS包以便以后执行:表示将包保存之后,在以后的某一规划时间运行。在“保存”选项,选中“保存DTS包”,则将包进行保存。

  ·SQL Server:将包存储在msdb数据库中;

  ·SQL Server Meta Data Service:将包存储在Repository中;

  ·Structured Storage File:以DTSCOM结构的文件格式存储。容易通过文件服务器进行邮递和分发。

  ·Visual Basic File

  (9)单击“下一步”,打开“保存DTS包”对话框,如下图所示。在“名称”输入该包的名称“新建包”,可以将包保存在本地服务器或其它的远程服务器,也可以选择适当的认证方式,如果选择SQL Server认证,要提供用户名和密码。

SQL Server数据与Excel表的导入导出

  (10)单击“下一步”,在“正在完成DTS导入/导出向导”对话框中单击“完成”,结束包的创建。如图所示。

SQL Server数据与Excel表的导入导出

  点击“完成”按钮,就完成了数据库到excel的导出操作。看看你的c:/test.xls吧。反之如果将Excel表中的内容导入到数据库中,只需要在导入导出向导下调整源和目的数据即可。具体的操作朋友们可以自己尝试一下哦!