变量在SSIS包中的使用
2010~2011年经常使用SSIS包采集加工数据,后来换了工作就很少使用。
最近又开始用那玩意采集数据,努力回想之前是怎样操作的,网上各种找各种纠结。趁这次使用记录下日常操作步骤,以备以后不时之需。
--环境SQL Server2012、VS2010(安装数据库时默认会安装)
下载示例数据库AdventureWorks2012,还原数据库并创建目标表。
--还原数据库 CREATE DATABASE [AdventureWorks2012] ON (FILENAME=N'D:SQL2012MSSQL11.SQL12MSSQLDATAAdventureWorks2012_Data.mdf') FOR ATTACH GO USE [DBA_Monitor] GO --时间段配置表 CREATE TABLE [dbo].[SSIS_Configuration]( [Id] [int] IDENTITY(1,1) NOT NULL, [StartDate] [datetime] NULL, [EndDate] [datetime] NULL ) ON [PRIMARY] GO --OLE DB目标表 CREATE TABLE [dbo].[SSIS_Product]( [ProductID] [int] NOT NULL, [Name] [nvarchar](50) NOT NULL, [ProductNumber] [nvarchar](25) NOT NULL, [Color] [nvarchar](15) NULL, [ListPrice] [money] NOT NULL, [SellStartDate] [datetime] NULL ) ON [PRIMARY] GO --插入时间段配置数据 INSERT INTO [dbo].[SSIS_Configuration](StartDate,EndDate) SELECT '20050101','20060101' UNION ALL SELECT '20060101','20070101' UNION ALL SELECT '20070101','20080101' GO
一、变量的使用
1、新建一个Integration Services 项目SSISForVariable
2、创建变量
菜单栏->SSIS->变量(或控制流空白区域右击->变量)调出变量窗口,创建两个日期变量
3、创建连接管理器
新建两个OLE DB连接AdventureWorks2012、DBA_Monitor
4、添加数据流任务->添加OLEDB源、OLEDB目标
编辑OLEDB源配置如图所示,点击参数,修改参数与变量的映射关系
编辑OLEDB目标,调整输入列与输出列的映射关系
5、运行包,查询目标表记录
6、将上述OLEDB源中的SQL命令封装成存储过程,代码如下:
1 use [AdventureWorks2012] 2 create proc pro_GetProduct 3 @StartDate datetime, 4 @EndDate datetime 5 as 6 select ProductID,Name,ProductNumber,Color,ListPrice from Production.Product 7 where SellStartDate>@StartDate and SellStartDate<@EndDate