SQL Server BI Step by Step SSIS 4 ---合并数据2
2009-02-25 10:22:00 来源:WEB开发网最后我们设置一下连接管理器,因为我们在脚本中要获取数据库连接,所以在这里我们添加一个连接的名称,注意这里我并没有连接到原来的OLE DB连接,我在脚本中使用了SqlDataReader,此处需要新建一个ADO.NET连接.
图片看不清楚?请点击这里查看原图(大图)。
设置完以后,我们再切换到脚本,直接设置脚本,打开脚本编辑器,输入如下脚本,然后关闭.确定.
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime
Imports System.Data.SqlClient
Public Class ScriptMain
Inherits UserComponent
Dim connMgr As IDTSConnectionManager90
Dim sqlConn As SqlConnection
Dim sqlCmd As SqlCommand
Dim sqlParam As SqlParameter
Public Overrides Sub AcquireConnections(ByVal Transaction As Object)
connMgr = Me.Connections.DBConnection
sqlConn = CType(connMgr.AcquireConnection(Nothing), SqlConnection)
End Sub
Public Overrides Sub PreExecute()
sqlCmd = New SqlCommand("SELECT [Name] FROM Product WHERE ProductNumber=@ProductNumber", sqlConn)
sqlParam = New SqlParameter("@ProductNumber", SqlDbType.NVarChar, 25)
sqlCmd.Parameters.Add(sqlParam)
End Sub
Public Overrides Sub RecordsInput_ProcessInputRow(ByVal Row As RecordsInputBuffer)
Dim reader As SqlDataReader
sqlCmd.Parameters("@ProductNumber").Value = Row.ProductNumber
reader = sqlCmd.ExecuteReader()
If reader.Read() Then
'此处可以根据需要进行字段的比较
If (reader("Name").ToString() <> Row.Name) Then
Row.DirectRowToUpdateRecordsOutput()
Else
Row.DirectRowToIgnoreRecordsOutput()
End If
Else
Row.DirectRowToInsertRecordsOutput()
End If
reader.Close()
End Sub
Public Overrides Sub ReleaseConnections()
connMgr.ReleaseConnection(sqlConn)
End Sub
End Class
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接