当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server 2000的数据转换服务(下)

MSSQL
用SQL语句实现替换字符串
mssql查找备注(text,ntext)类型字段为空的方法
MSSQL数据类型及长度限制详细说明
SQL Server下几个危险的扩展存储过程
一些SQL Server存储过程参数及例子
sql高级技巧几个有用的Sql语句
SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
用SQL建立索引的方法步骤
MSsql每天自动备份数据库并每天自动清除log的脚本
mssql无数据库日志文件恢复数据库的方法
SQL Server常用管理命令小结
SQL SERVER性能优化综述(很好的总结,不要错过哦)
sqlserver 游标的简单示例
sqlserver只有MDF文件恢复数据库的方法
在SQL Server启动时自动执行存储过程。
在 SQLSERVER 中快速有条件删除海量数据
阿拉伯数字转大写中文_财务常用sql存储过程
SQL Server存储过程的基础说明
列出SQL Server中具有默认值的所有字段的语句
文本、Excel、Access数据导入SQL Server2000的方法

MSSQL 中的 SQL Server 2000的数据转换服务(下)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 46 ::
收藏到网摘: n/a

  Microsoft SQL Server 2000的数据转换服务(下)

数据泵:转换数据

  DTS 数据泵是一个 DTS对象,它驱动数据的导入、导出和转换操作。
在执行数据转换、数据驱动查询和并行数据泵任务期间将使用数据泵。执
行这些任务的过程是:在源和目标连接上创建行集合,然后创建数据泵实
例在源和目标间移动这些行。在复制每一行时,将进行转换操作。

  下图中,在第二个步骤中,转换数据任务在 Access DB任务和 SQL
Production DB任务之间进行。转换数据任务用连接间的灰色箭头表示。

         图 7. 示例:转换数据任务

  要定义从源连接收集的数据,可以生成一个转换任务的查询。DTS 支
持参数化查询,参数化查询允许在执行查询时定义查询值。

  可以将查询键入任务的“属性”对话框,也可以使用数据转换服务查
询设计器,它是一个用图形化方式生成 DTS任务查询的工具。下图中,使
用查询设计器来生成一个查询,该查询联接 pubs 数据库中的三个表。
    
        图 8. 数据转换服务查询设计器界面

  在转换任务中,还可以定义要对数据进行的更改。下表说明 DTS提供
的内置转换。



转换 说明
复制列 用于在不应用任何转换的情况下将数据直接从源列复制到目标列。
ActiveX 脚本 用于生成自定义转换。请注意,因为转换将逐行进行,ActiveX 脚本可能影响 DTS 软件包的执行速度。
DateTime 字符串 用于将源列中的日期或时间转换为目标列中的另一种格式。  
小写字符串 用于将源列转换为小写字符形式,如需要,将其转换为目标数据类型。
大写字符串 用于将源列转换为全大写字符形式,如需要,将其转换为目标数据类型。
中间字符串 用于从源列抽取子字符串,对其进行转换后将结果复制到目标列。
修剪字符串 用于删除源列中字符串的前导空格、尾随空格和嵌入空格,然后将结果复制到目标列。
读取文件 用于打开文件内容(文件名称在源列中指定),然后将内容复制到目标列。
写入文件 用于将源列(数据列)的内容复制到一个文件中,该文件的路径由第二个源列(文件名列)指定。

  还可以用编程方式创建自己的自定义转换。生成自定义转换最快速的
方式是使用活动模板库(ATL )自定义转换模板,SQL Server 2000 DTS
样本程序中包括该模板。

数据泵错误记录

  SQL Server 2000 中提供了一种记录转换错误的新方法。可以定义三
种异常情况记录文件来记录软件包执行期间的情况:错误文本文件、源错
误行文件和目标错误行文件。
●一般错误信息将写入错误文本文件中。
●如果转换失败,源行出现错误,该行将写入源错误行文件。
●如果插入失败,目标行出现错误,该行将写入目标错误行文件。

  在转换数据的任务中将定义异常情况日志文件。每个转换任务都有自
己的日志文件。

数据泵阶段

  默认情况下,数据泵有一个阶段,即行转换。该阶段是在未选择阶段
的情况下,在转换数据任务、数据驱动查询任务和并行数据泵任务中映射
列一级的转换时配置的。

  多个数据泵阶段是 SQL Server 2000中新增的。通过在 SQL Server
企业管理器中选择多阶段数据泵选项,在数据泵操作过程中的不同阶段都
可以访问数据泵并添加功能。

  将数据行从源复制到目标时,数据泵将按照下图中所显示的基本进程
进行操作。
   
            图 9. 数据泵进程

  数据泵处理完最后一行数据后,任务结束,数据泵操作终止。

  如果高级用户要向软件包添加功能,以便软件包能支持任何数据泵阶
段,可以执行以下操作:
●为每个要自定义的数据泵阶段编写一个 ActiveX 脚本阶段函数。如果
 使用 ActiveX 脚本函数来自定义数据泵阶段,不需要该软件包以外的
 其它任何代码。
●使用 Microsoft Visual C++? 创建 COM 对象来自定义所选的数据泵阶
 段。在该软件包之外开发此程序,在执行转换过程中每个所选的阶段时
 将调用该程序。访问数据泵阶段的 ActiveX 脚本方法中每个所选阶段
 都使用不同的函数和输入点;而这种方法则不同,它在数据泵任务执行
 期间提供一个单一输入点,该输入点将被多个数据泵阶段调用。

保存 DTS 软件包的选项

以下选项可用于保存 DTS 软件包:
●Microsoft SQL Server
  如果要将软件包存储到网络中 SQL Server 的任意实例上,该选项将
DTS 软件包保存到 Microsoft SQL Server ,保留一个便于使用的这些软
件包的清单,并在软件包开发进程中添加和删除软件包版本。

●SQL Server 2000 元数据服务
  如果准备跟踪软件包版本、元数据和数据系列信息,该选项将 DTS软
件包保存到元数据服务。

●结构化存储文件
  如希望在网络间复制、移