[分享]微软BI专题-SQL Server BI Development Studio使用技巧系列(一)
2008-12-08 16:30
609 查看
——Foreach循环容器使用方法
Foreach循环容器定义包中的重复控制流。循环的实现与编程语言中的Foreach循环结构类似。在包中,通过使用Foreach枚举器启用循环。 Foreach循环容器将重复指定枚举器的每个成员的控制流。本期文章中,我们介绍其中两种常用的枚举器使用方法:Foreach文件枚举器、 ForeachADO枚举器。
Foreach循环容器定义包中的重复控制流。循环的实现与编程语言中的Foreach循环结构类似。在包中,通过使用Foreach枚举器启用循环。Foreach循环容器将重复指定枚举器的每个成员的控制流。
SQL Server 2005 Integration Services (SSIS) 提供了7种枚举器类型:
1. ForeachADO 枚举器,用于枚举表中的行。例如,可以获取ADO记录集中的行。
2. ForeachADO.NET架构行集枚举器,用于枚举有关数据源的架构信息。例如,可枚举并获取一组AdventureWorks SQL Server数据库中的表。
3. Foreach文件枚举器,用于枚举文件夹中的文件。该枚举器可遍历子文件夹。例如,可读取 Windows 文件夹中所有具有 *.log文件扩展名的文件。
4. Foreach源变量枚举器,用于枚举指定变量包含的可枚举对象。例如,变量包含运行时枚举的查询的结果。
5. Foreach项枚举器,用于枚举集合项。例如,可枚举 Excel 电子表格中的行和列。
6. ForeachNodelist枚举器,用于枚举XML Path 语言 (XPath)表达式的结果集。例如,此表达式可枚举并获取古代的所有作者:/authors/author[@period='classical']。
7. ForeachSMO枚举器,用于枚举SQL Server管理对象(SMO)对象。例如,可枚举并获取SQL Server数据库中的视图列表。
今天,我们介绍其中两种常用的枚举器使用方法:Foreach文件枚举器、ForeachADO 枚举器。
Foreach文件枚举器。
该枚举器对指定目录下的文件进行逐一读取,然后在Foreach容器中循环使用。
例如:我们要对目录c:/temp/下的所有.txt文件进行逐一读取处理。使用Foreach文件枚举器关键操作步骤如下:
一、使用Foreach容器:在Business Intelligence Development Studio中,创建Integration Service项目,并从“工具箱”中,将“Foreach循环容器”拖到“控制流”选项卡的设计图面上。右键单击新添加的“Foreach循环容器”,选择“编辑”。
二、 设置循环类型:在“集合”页上,选择“Foreach文件枚举器”。在“枚举器配置”组中,单击“浏览”。找到前面创建的示例数据文件夹C:/temp,并将处理文件的类型设置为*.txt。
三、定义枚举器变量:在“变量映射”页的“变量”列中,新建变量varFileName,用于获取Foreach每次循环所读取的文件名,如图一
四、在Foreach循环容器中添加数据流任务,读取.txt文件。
五、为数据流任务添加平面文件源组件,并做初始设置。如:平面文件的行分隔符、列分割符、是否有标题行等等;这个时候的文件名可以选取任何一个与C:/temp目录下的.txt文件格式相同的文件。如图2
六、 配置平面文件连接管理器,以使用枚举器变量:在“连接管理器”窗格中,右键单击Flat File Data Source选择属性。在“属性表达式编辑器”对话框的“属性”列中,键入或选择ConnectionString。将变量 User::varFileName 赋给ConnectionString。如图3
由此,我们通过Foreach的文件枚举器,实现了对目录c:/temp/下的所有.txt文件进行循环读取处理的目的。
ForeachADO 枚举器
该枚举器对指定表中的行进行逐一读取,然后在Foreach容器中循环使用。
例如:我们有一张表不规范的员工信息表:Employee和一张部门设置表DimEmployeeGroup;我们希望经过ETL转换,得到标准的员工信息表DimEployee,如图4。
我们就可以采到Foreach容器的ForeachADO枚举器,实现上述需求,其关键步骤如下:
一、 在项目中添加3个包级变量:分别为:Object 型变量Resultset;INT 型变量 id;String 型变量name;
二、 添加执行SQL任务get_family_name,查询EmployeeGroup表中的数据存放到Resultset变量中。如图5
三、 添加Foreach循环容器:Foreachloop Container并配置”集合”选项,在”ADO对象源变量(v)”处选择Resultset变量,作为循环所依据的表集。 点击”变量映射”选项,选择变量id索引0、name索引1,接收每次循环的结果。如图6
四、 向容器中添加执行SQL任务set_dimemployee:通过变量映射,获取循环所得的结果,并在SQL命令中使用该变量,将标准数据添加到DimEmployee表中。
由此,我们就通过Foreach容器的ForeachADO枚举器,实现了图4中的需求,参照DimEmployeeGroup表,将不规范的Employee信息,导入到了标准的DimEmployee表中。
……
Foreach循环容器定义包中的重复控制流。循环的实现与编程语言中的Foreach循环结构类似。在包中,通过使用Foreach枚举器启用循环。 Foreach循环容器将重复指定枚举器的每个成员的控制流。本期文章中,我们介绍其中两种常用的枚举器使用方法:Foreach文件枚举器、 ForeachADO枚举器。
Foreach循环容器定义包中的重复控制流。循环的实现与编程语言中的Foreach循环结构类似。在包中,通过使用Foreach枚举器启用循环。Foreach循环容器将重复指定枚举器的每个成员的控制流。
SQL Server 2005 Integration Services (SSIS) 提供了7种枚举器类型:
1. ForeachADO 枚举器,用于枚举表中的行。例如,可以获取ADO记录集中的行。
2. ForeachADO.NET架构行集枚举器,用于枚举有关数据源的架构信息。例如,可枚举并获取一组AdventureWorks SQL Server数据库中的表。
3. Foreach文件枚举器,用于枚举文件夹中的文件。该枚举器可遍历子文件夹。例如,可读取 Windows 文件夹中所有具有 *.log文件扩展名的文件。
4. Foreach源变量枚举器,用于枚举指定变量包含的可枚举对象。例如,变量包含运行时枚举的查询的结果。
5. Foreach项枚举器,用于枚举集合项。例如,可枚举 Excel 电子表格中的行和列。
6. ForeachNodelist枚举器,用于枚举XML Path 语言 (XPath)表达式的结果集。例如,此表达式可枚举并获取古代的所有作者:/authors/author[@period='classical']。
7. ForeachSMO枚举器,用于枚举SQL Server管理对象(SMO)对象。例如,可枚举并获取SQL Server数据库中的视图列表。
今天,我们介绍其中两种常用的枚举器使用方法:Foreach文件枚举器、ForeachADO 枚举器。
Foreach文件枚举器。
该枚举器对指定目录下的文件进行逐一读取,然后在Foreach容器中循环使用。
例如:我们要对目录c:/temp/下的所有.txt文件进行逐一读取处理。使用Foreach文件枚举器关键操作步骤如下:
一、使用Foreach容器:在Business Intelligence Development Studio中,创建Integration Service项目,并从“工具箱”中,将“Foreach循环容器”拖到“控制流”选项卡的设计图面上。右键单击新添加的“Foreach循环容器”,选择“编辑”。
二、 设置循环类型:在“集合”页上,选择“Foreach文件枚举器”。在“枚举器配置”组中,单击“浏览”。找到前面创建的示例数据文件夹C:/temp,并将处理文件的类型设置为*.txt。
三、定义枚举器变量:在“变量映射”页的“变量”列中,新建变量varFileName,用于获取Foreach每次循环所读取的文件名,如图一
四、在Foreach循环容器中添加数据流任务,读取.txt文件。
五、为数据流任务添加平面文件源组件,并做初始设置。如:平面文件的行分隔符、列分割符、是否有标题行等等;这个时候的文件名可以选取任何一个与C:/temp目录下的.txt文件格式相同的文件。如图2
六、 配置平面文件连接管理器,以使用枚举器变量:在“连接管理器”窗格中,右键单击Flat File Data Source选择属性。在“属性表达式编辑器”对话框的“属性”列中,键入或选择ConnectionString。将变量 User::varFileName 赋给ConnectionString。如图3
由此,我们通过Foreach的文件枚举器,实现了对目录c:/temp/下的所有.txt文件进行循环读取处理的目的。
ForeachADO 枚举器
该枚举器对指定表中的行进行逐一读取,然后在Foreach容器中循环使用。
例如:我们有一张表不规范的员工信息表:Employee和一张部门设置表DimEmployeeGroup;我们希望经过ETL转换,得到标准的员工信息表DimEployee,如图4。
我们就可以采到Foreach容器的ForeachADO枚举器,实现上述需求,其关键步骤如下:
一、 在项目中添加3个包级变量:分别为:Object 型变量Resultset;INT 型变量 id;String 型变量name;
二、 添加执行SQL任务get_family_name,查询EmployeeGroup表中的数据存放到Resultset变量中。如图5
三、 添加Foreach循环容器:Foreachloop Container并配置”集合”选项,在”ADO对象源变量(v)”处选择Resultset变量,作为循环所依据的表集。 点击”变量映射”选项,选择变量id索引0、name索引1,接收每次循环的结果。如图6
四、 向容器中添加执行SQL任务set_dimemployee:通过变量映射,获取循环所得的结果,并在SQL命令中使用该变量,将标准数据添加到DimEmployee表中。
由此,我们就通过Foreach容器的ForeachADO枚举器,实现了图4中的需求,参照DimEmployeeGroup表,将不规范的Employee信息,导入到了标准的DimEmployee表中。
……
相关文章推荐
- 使用SQL Server Business Intelligence Development Studio 2005设计报表模型时的一个容易被忽视的问题
- SQL Server Management Studio 使用技巧
- 【手记】小心在where中使用NEWID()的大坑 【手记】解决启动SQL Server Management Studio 17时报Cannot find one of more components...的问题 【C#】组件分享:FormDragger窗体拖拽器 【手记】注意BinaryWriter写string的小坑——会在string前加上长度前缀length-prefixed
- 使用SQL Server Business Intelligence Development Studio 2005设计报表模型时的一个容易被忽视的问题
- SQL Server Management Studio 2005使用技巧
- 2015年全国大学生电子设计竞赛专题系列之综合测评-Multisim使用技巧
- 微软BI 之SSIS 系列 - Execute SQL Task 中的 Single Row 与 Full Result Set 的处理技巧
- [分享]微软BI专题-BI中的特殊语言——MDX(下)
- 使用sql server management studio 2008 连接数据库,无法查看数据库,提示 无法为该请求检索数据 错误916
- 无法使用SQL Server Management Studio的找到Network Server
- 使用SQL Server Management Studio 创建数据库备份作业
- 《MS SQL Server 2000管理员手册》系列——16. 建立与使用默认值、条件约束及规则
- 微软BI 之SSIS 系列 - 使用 SQL Profilling Task (数据探测) 检测数据源数据
- SQL Server profile使用技巧
- SQL Server Management Studio 和 Business Intelligence Development Studio
- SQL SERVER 2005 无法使用SQL SERVER MANAGERMET STUDIO 登陆(原因是没有使用默认端口进行远程连接所造成的)
- 在SQL Server Management Studio中使用手动提交更改
- SQL Server Management Studio 过期无法使用解决办法
- SQL Azure(五) 使用SQL Server Management Studio连接SQL Azure
- SQL Server Business Intelligence Development Studio 连接 TFS 2010 Server