SSIS Execute SQL Task 用法
Execute Sql Task组件是一个非常有用的Control Flow Task,可以直接执行SQL语句,例如,可以执行数据更新命令(update,delete,insert),也可以执行select查询语句,返回结果集,结果集可以是一行,也可以是多行。
一,General 选项卡
1,返回结果集(Result Set)
- None:表示不返回结果,在执行Update,delete或insert命令时,使用该选项;
- Single row:返回单行结果,可以在Result Set 选项卡中,将结果集返回到1个或多个变量中
- Full result set:返回多行结果,结果集存储在object对象中

2,组件执行的SQL命令(SQL Statement)
- ConnectionType:连接到数据源的链接类型,如果是OLEDB链接,选中OLE DB;
- Connection:链接字符串
- SQLSourceType:SQL数据源的类型,共有三个选项:Direct Input,File Connection 和 Variable。Direct Input表示:直接输入SQL命令;FileConnection表示:将SQL命令保存在.sql文件中;Variable表示:SQL命令保存在SSIS的变量中,如果Execute SQL Task执行的SQL命令是动态变化的,使用Variable选项较好;
- SQLStatement:要执行的SQL语句,根据SQLSourceType的不同,有三种不同的值:SQL语句,.sql文件路径,或SSIS变量;
3,示例:SQLSourceType=Variable


二,Expressions选项卡
SSIS Package的属性,既可以在General Tab中手动配置,也可以在Expressions Tab中配置,将配置属性的值保存到变量中,可以动态控制包的执行,
示例,将SqlStatementSource的值存储在变量中,结果和SqlSourceType=Variable是一样的,只不过实现方式不同,并且SSIS在执行过程中,使用Expressions的属性覆盖General中配置的属性值。

三,Result Set选项卡
如果在General选项卡中,将Result Set设置为Singel Row,可以将结果值存储在变量中

四,Parameter Mapping 选项卡
如果sql命令在执行的过程中需要传递参数,可以在Parameter Mapping 选项卡中进行配置。如果使用的OLE DB 链接,需要使用 ?代表第一个参数,并且在Parameter Mapping 中将parameter name设置为参数的序号,第一个? 的序号是0,即序号从0依次递增


五,返回受影响数据的行数
ExecValueVariable 属性是Task的标准属性。有些Task在执行完成后,会返回输出结果,为了获取Task的输出结果,我们可以定义一个变量,存储输出结果。Task的ExecValueVariable属性就是用来指定存储Task输出结果的变量名。默认属性值是none,表示task的输出结果不会被存储。
Execute SQL Task 返回被更新的数据的行数,我们可以为ExecValueVariable属性指定一个变量,用来接收Task的输出值(Execution value),在下游组件中可以引用该变量,获取 Execute SQL Task 更新的数据行数。
Returns the number of rows affected by the SQL statement(s).The ExecValue is using the @@ROWCOUNT to assign the value of the variable and absent a @@ROWCOUNT the value returned is -1.
示例 Execute Sql Task的ExecValueVariable 用法
1,设计Package的Control Flow


Execute Sql Task的属性:ExecValueVariable的值是变量varCount,该Task执行的SQL语句如下:
insert into dbo.delay_test
VALUES(1),(2),(3) insert into dbo.delay_test
VALUES(2),(3)

Task:insert Data执行的SQL语句是,传入的参数是User::varCount
insert into dbo.dt_test
values(?)

2,查看结果,第一个Task返回的结果是varCount是2,这个结果实际上是@@RowCount,SSIS在执行语句之后,将@@RowCount赋值到Execute SQL Task 属性ExecValueVariable指定的变量中。
SSIS Execute SQL Task 用法的更多相关文章
- [转]SSIS Execute SQL Task : Mapping Parameters And Result Sets
本文转自:http://www.programmersedge.com/post/2013/03/05/ssis-execute-sql-task-mapping-parameters-and-res ...
- 微软BI 之SSIS 系列 - Execute SQL Task 中的 Single Row 与 Full Result Set 的处理技巧
开篇介绍 Execute SQL Task 这个控件在微软BI ETL 项目中使用的频率还是非常高的,也是大部分入门 SSIS 初学者最早接触到的几个控制流控件. 我们通常使用 Execute SQL ...
- Execute SQL Task 参数和变量的映射
Execute SQL Task能够执行带参数的SQL查询语句或存储过程(SP),通过SSIS的变量(Variable)对参数赋值.对于不同的Connection Manager,在Task中需要使用 ...
- Execute Sql Task 的Result DataSet如何返回
Execute Sql Task的Result DataSet 主要有以下四种,当Execute Sql Task返回结果之后,需要使用SSIS Variable 来接收数据. 例子中使用的数据表代码 ...
- Execute SQL Task 如何返回结果数据集
Execute Sql Task的Result DataSet 主要有以下四种,当Execute Sql Task返回结果之后,需要使用SSIS Variable 来接收数据. 例子中使用的数据表代码 ...
- [转]Working with Parameters and Return Codes in the Execute SQL Task
本文转自:http://msdn.microsoft.com/zh-cn/magazine/cc280502(en-us,SQL.100).aspx SQL statements and stored ...
- SSIS中Sql Task 获取系统变量
原文:SSIS中Sql Task 获取系统变量 执行 SQL 任务使用不同的连接类型时,SQL 命令的语法使用不同的参数标记.例如,ADO.NET 连接管理器类型要求 SQL 命令使用格式为 @var ...
- Execute Process Task
Execute Process Task 用于在Control Flow中执行应用程序,常用于对加密的数据进行解压. 1,RequireFullFileName 属性:是否需要完整的文件路径,如果在F ...
- 反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑) C#中缓存的使用 C#操作redis WPF 控件库——可拖动选项卡的TabControl 【Bootstrap系列】详解Bootstrap-table AutoFac event 和delegate的分别 常见的异步方式async 和 await C# Task用法 c#源码的执行过程
反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑) 背景介绍: 为了平衡社区成员的贡献和索取,一起帮引入了帮帮币.当用户积分(帮帮点)达到一定数额之后,就会“掉落”一定数量的“帮帮 ...
随机推荐
- CentOS 7.x设置自定义开机启动,添加自定义系统服务
Centos 系统服务脚本目录: /usr/lib/systemd/ 有系统(system)和用户(user)之分, 如需要开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即: /l ...
- svn客户端重新设置用户名和密码
在第一次使用TortoiseSVN从服务器CheckOut的时候,会要求输入用户名和密码,这时输入框下面有个选项是保存认证信息,如果选了这个选项,那么以后就不用每次都输入一遍用户名密码了. 不过,如果 ...
- C,C++
C与C++的Struct有何区别,Java有Struct吗,C++里Struct与Class区别: C++虚析构函数作用: static静态变量初始化: 深复制与浅复制区别: const * int ...
- Python3.5 day3作业二:修改haproxy配置文件。
需求: 1.使python具体增删查的功能. haproxy的配置文件. global log 127.0.0.1 local2 daemon maxconn 256 log 127.0.0.1 lo ...
- Node.js抓取网页
前几天四六级成绩出来(然而我没考),用Node.js做了一个模拟表单提交并抓取数据的Web 总结一下用到的知识,简单的网页抓取大概就是这个流程了 发送Get或Post请求 表单提交,首先弄到原网页提交 ...
- K线图学习
本博文(适合入门的股民朋友)内容来自网络,股市有风险,入市需谨慎 一.起源 K线图(Candlestick Charts)又称蜡烛图.日本线.阴阳线.棒线等,常用说法是“K线”,起源于日本十八世纪德川 ...
- Excel Sheet Column Title
Given a positive integer, return its corresponding column title as appear in an Excel sheet. For exa ...
- AJax登录。。转
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX 是一种用于创建快速 ...
- 递归一题总结(OJ P1117倒牛奶)
题目: 农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数,最初,A和B桶都是空的,而C桶是装满牛奶的.有时,约翰把牛奶从一个桶倒到另 ...
- MVC辅助方法
我相信很多人虽然经常用mvc去做一些东西,但是可能很少使用mvcHtml辅助方法 首先我们要创建一个mvc项目 二创建一个HtmlHelper文件夹 三编写文件 四调用辅助方法 调用辅助方法 和使用其 ...