DTS Transform Data Task的使用
DTS Transform Data Task的使用
-------------2006.06.08
目的:
将Source Server中的数据表经过一定的事务处理转换到 Destination Server的数据表中. (例子)
步骤:
1,在Connection中选择两个 Microsoft OLE DB Provider for SQL Server,分别设为Source Server和Destination Server,并设置其相关属性.
(图1) (图2)
2. 创建一个Transform Data Task
先选择Source Server,点击Transform Data Task 任务,在选择Defination Server.这样,就在用Transform 将两个不同的服务器连接起来了.
3. 根据事务逻辑在Transform Data Task设置编写相关代码.
Source: 选择源Server中的数据库的某一个特定表或者视图,当然,你也可以自己写SQL Query,
(图3)
Preview:来查看你所选择或者Sql Query中的数据.
Build Query:点击后将出现下图,在这里你可以选择Source Server中某一数据库中的一些表和视图,()
(图4)
Browse:你也可以将DTS中的sql文件,导入进来.
Parse Query:对Query进行语法检查
Destination:
(图5)
如Source
Transformation:默认Source和Destination的Field关系如下,当然了也可以将这些Field删除,重新建立新的Field连接.而重要的也是这些!
(图6)
建立ActiveX Script连接,
点击New,选择ActiveX Script连接,出现如下画面.
(图7)
选择Properties:出现下图:这里可以根据数据转换要求,进行代码编写.
(图8)
选择Source Columns,
(图9)
选择Destination Columns
(图10)
Lookups:输入Name,选择Connection(一般有两个,一个是Source Server的,一个是Detination Server的.点击Query的按钮,将会出现 (图4)
注意:在LookUps中不仅仅可以Select,也可以UpDate,InSert,Delete.我当初就犯了这样的一个错误.走了别的弯路.
(图11)
Option:没有怎么使用过!
(图12)
注:图8的详细介绍.如(图13)
但Data Pump Constan中的
DTSTransformStat_OK
DTSTransformStat_Info
DTSTransformStat_OKInfo
DTSTransformStat_SkipRow
DTSTransformStat_SkipRowInfo
DTSTransformStat_SkipFetch
DTSTransformStat_SkipInsert
DTSTransformStat_DestDataNotSet
DTSTransformStat_Error
DTSTransformStat_ErrorSkipRow
DTSTransformStat_ExceptionRow
DTSTransformStat_AbortPump
DTSTransformStat_NoMoreRows
几个选项具体是什么意思,我都不是很懂呢!
在测试的时候,在Source Columns和Destination Columns中选择一些Fields
而在Visual Basic Transformation Script中只输入如下代码:
'**********************************************************************
' Visual Basic Transformation Script
'************************************************************************
' Copy each source column to the destination column
Function Main()
Main = DTSTransformStat_OK
End Function
在Visual Basic Transformation Script中使用Test运行时,没有任何错误.
而运行包是,则会出现这样的错误信息. (其实什么都没有做呀!)
而改为
'**********************************************************************
' Visual Basic Transformation Script
'************************************************************************
' Copy each source column to the destination column
Function Main()
Main = DTSTransformStat_SkipRow
End Function
再重新运行的时候就没有了错误.
这个是什么问题,连我自己都搞不明白.
当然了,使用ActiveX Script一样可以实现这个功能!但会麻烦一些.我都有试过.