网络编程
位置:首页>> 网络编程>> 数据库>> 深入分析SQL Server的数据转换服务

深入分析SQL Server的数据转换服务

作者:53097 来源:赛迪网 发布时间:2008-11-28 15:29:00 

标签:

在使用SQL Server 的过程中,由于经常需要从多个不同地点将数据集中起来或向多个地点复制数据,所以数据的导出,导入是极为常见的操作.我们可以使用BCP 命令来完成这一任务,但是记住 BCP 的命令格式是一件令人头痛的苦差事,虽然你可以查看帮助文件,所以我们需要功能强大操作简单的工具来完成这一任务,数据转换服务DTS 提供了这种支持。因此本文将介绍DTS 的基本情况、讨论DTS 的各个构建组件以及如何完成数据转换服务。

数据转换服务简介

为了支持企业决策,许多组织都需将数据集中起来进行分析。但是通常数据总是以不同的格式存储在不同的地方。有的可能是文本文件,有的虽然具有表结构但不属于同一种数据源,这些情况极大地妨碍数据的集中处理。SQL Server 为我们提供了令人欣慰的组件,即Data Transformation Services( DTS)。 DTS 本身包含多个工具并提供了接口来实现在任何支持OLE DB 的数据源间导入、导出或传递数据,并使这一工作变得简单高效。这意味着不仅可以在SQL Server 数据源间进行数据的转储,而且可以把Sybase, Oracle, Informix 下的数据传递到SQL Server。

利用Data Transformation Services (DTS) 可能在任何OLE DB、 ODBC 驱动程序的数据源或文本文和SQL Server 之间导入、导出或传递数据。具体表现在: 数据的导入、导出服务

通过读写数据在不同应用程序间交换数据。例如,可将文本文件或Microsoft Access 数据库导入到SQL Server, 也可以把数据从SQL Server 导出到任何OLE DB 数据源。 转换数据

所谓传递是指在数据未到达目标数据源前而对数据采取的系列操作。比如DTS 允许从源数据源的一列或多列计算出新的列值,然后将其存储在目标数据库中。 传递数据库对象

在异构数据源情况下DTS, 的内置工具只能在数据源间传递表定义和数据。如果要传递其它数据库对象,如索引、约束、视图时,必须定义一个任务,从而在目标数据库上执行那些包含在任务中的SQL 语句,SQL 语句是被用来创建这些数据库对象的。 18.1.2 DTS 结构

DTS 将数据导入、导出或传递定义成可存储的对象,即包裹或称为包。每一个包都是包括一个或具有一定顺序的多个任务的工作流。每个任务可以将数据从某一数据源拷贝至目标数据源或使用Active 脚本转换数据或执行SQL 语句或运行外部程序。也可以在SQL Server 数据源间传递数据库对象。

包对象用来创建并存储步骤,这些步骤定义了一系列任务执行的顺序以及执行任务的必要细节。包对象中还包括源列、目标列以及有关在数据传递过程中如何操纵数据的信息。

包可以存储在DTS COM 结构的存储文件中、msdb 数据库中、或Microsoft Repository 中。

可以通过以下工具来运行包,它们是:dtsrun 工具,DTS Designer, DTS 的导入、导出向导,SQL Server Agent 来运行规划作业,使用Execute 方法调用DTS 包对象的COM应用程序。

包是顶层对象,它包含三种底层对象:连接、任务、步骤。

连接

连接定义了有关源和目标数据(数据源或文件)的信息这些信息包括数据格式和位置,以及安全认证的密码。DTS 包可不包含或包含多个连接。使用连接的任务有:

DTS Data Pump 任务 执行SQL 任务 数据驱动查询任务 定制任务;

有三种类型的连接对象 数据源连接。

数据源连接定义了有关源和目标OLE DB 数据源的信息。这些信息包括服务器名称、数据格式和位置,以及安全认证的密码。第一个使用连接的任务负责创建该连接。如果使用ODBC 的OLE DB 提供者,则连接也可以定义ODBC 数据源信息。

文件连接定义了有关源和目标文件的信息。这些信息包括文件格式和位置。 Microsoft 数据连接对象

Microsoft 数据连接对象或者加载数据连接文件(*.udl) 或者为OLE DB 提供者设置数据连接文件的属性。

任务

每个DTS 包都含有一个或多个任务,每个任务都是数据转换(传递)处理的工作项目。任务的种类包括: 执行SQL 任务:即执行SQL 语句; Data Pump 任务该任务:为Data Pump 操作定义了源和目标数据源以及数据转换。Data Pump 从源和目标OLE DB 数据源间拷贝并转换数据; ActiveX 脚本执行:ActiveX, VB, Jscript 或Perscript 脚本。凡是脚本支持的操作都可以执行; 执行处理任务(Execute Process task): 指执行外部程序; 批量插入指执行:SQL Server 批拷贝操作; 发送邮件:使用SQL Mail 发送寻呼或邮件; 数据驱动查询:执行OLE DB 数据源间的高级数据传递; 转换SQL Server 对象:即从SQL Server OLE DB 数据源向另外的同类数据源复制对象,例如表、索引、视图。

步骤

步骤对象定义了任务执行的顺序,以及某一任务的执行是否依赖于前一个任务的结果。如果某一任务不与步骤对象相关联,则其将无法被执行。可以为某一步骤设定运行条件,使其只在一定条件才被执行,为了提高执行的性能,也可以并行执行多个步骤。

步骤的一个重要特性是步骤优先权约束。步骤优先权约束定义了前一步必须满足哪些条件之后才会执行当前步骤,通过步骤优先权约束可以控制任务的执行顺序。有三种类型的优先权约束:

完成:表示前一步骤完成后就执行当前步骤,而不管其成功与否; 成功:表示前一步骤只有成功执行才执行当前步骤; 失败:表示前一步骤执行失败时才执行当前步骤。某一步骤可有多个优先权约束,只有前一步满足所有的约束后,才能执行当前步骤。

0
投稿

猜你喜欢

  • Wordpress 2.6.2 出来了,今天将网站程序从2.6升级上来,比较了一下2个版本的代码,发现2.6的版本中的代码还有几个地方出现了
  •   先废话几句,这第23篇教程一直没有翻译出来,直到今天我看到待审评论里面有这么一条超长的评论,结果一看,居然是这篇教程的翻译稿。
  • 测试语法如下:powered by jb51.netexec GetRecordFromPage news,newsid,10,100000
  • 大家经常用的是Adodb.Stream,但这时就有个缺陷,就是不支持断点续传了。经常看到flashget中是红脸(即不支持断点续传)其实支持
  • 数据库(database)MySQL 是最流行的开源数据库系统,可运行于几乎所有的操作系统平台。在《MySQL 安装》一文中详解介绍了安装步
  • rem ---表单提示函数 Being-----------------------------CODE Copy ...  Fu
  • 07年,我是极力推崇网站规范制作,好处很多,对商业,对用户,对设计师。我们走了两年,现在有了一定的成效,我们也看到了规范所带来的好处和便利。
  • 大家好,我叫斑马纹列表中使用两种相同的样式但颜色不同的背景,来间隔显示的内容。当然这个释义我是借鉴《designing interfaces
  • 我们经常见到很多网站留言系统的显示访客的IP地址都是隐藏了一部分,以达到隐蔽访客真实地理位置的功能。如:111.222.333.*,当然在系
  • Windows 8 终于发布了,虽然现在可用的只是开发者预览版,好消息是,IE 10 也随着发了,虽然现在还只有Windows 8可用。我们
  • 在讲CSS优先级之前,我们得要了解什么是CSS,CSS是用来做什么的。首先,我们对CSS作一个简单的说明:CSS是层叠样式表(Cascadi
  • 如果让一个ASP页面以https开始,则在该ASP页面最顶部添加如下代码: <%Response.Buffer =
  • 看到很多站长工具网,都提供了通过域名获取网站IP的方法。自己也想做一个,网上查了不少代码。有说用WSHSHELL,也有说用ASPPING组件
  • 一、定位 oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做f
  • ctrl+Enter:重建ctrl+0:相当于点击当前行左方的加号或减号ctrl+E:打开新窗口预览ctrl+T:替换\t为两个空格tab:
  • 测试代码:输出简单的ul li1.asp代码如下:<% response.write "<ul>" r
  • 问: 如果数据表中有时间字段,现在要迁移到其他时区的服务器上,该如何处理呢?答:在高版本的mysqldump中,新增了一个选项:--tz-u
  • 大量的多行段落本身就会降低可读性,同时空行分段也比空格分段有更高的可适应性...前文讨论的热烈程度远超我预期,正好还有之前查阅资料拍的几张实
  • ajax缓存和编码问题不难解决,下面是解决方法。编码问题默认使用UTF-8,如果一旦发现对象找不到的情况,可能js中输入了中文,同时js的编
  • 在Web标准中的页面布局是使用Div配合CSS来实现的。这其中最常用到的就是使整个页面水平居中的效果,这是在页面布局中基本,也是最应该首先掌
手机版 网络编程 asp之家 www.aspxhome.com