SSIS中ExecuteSQL TASK组件关于参数的使用[转]
2012-06-14 19:00
525 查看
本文转自 :http://blog.csdn.net/kuui_chiu/article/details/5411062
SSIS中ExecuteSQL TASK组件关于参数的使用 SQL2005
2008年08月14日 星期四 04:48 P.M.
SSIS中ExecuteSQL TASK组件关于参数的使用 SQL2005
2008年08月14日 星期四 04:48 P.M.
留意表达式中各参数的内涵.在此文中将让你明白ExecuteSQL task组件在SSIS中的功能和作用,我将介绍下面内容: 关于任务 关于任务的属性 看完这些介绍后我将举出下面例子: 从一个有2个输入参数的SQL查询中返回一个简单的值 从一个SQL查询中返回一个记录集 执行一个存储过程并接收一个记录集、返回值、输出参数和传送一个输入参数 从SQL查询中返回XML 从一个变量中执行SQL句子 从一个文件中执行SQL句子 关于任务: 我们拖曳它到设计器上,可以看出它会提示你“当前组件没有指定连接”,如图 ![]() 我们可以很容易的给它指定连接,双击它,如图 ![]() 这样我们可以选择不同的连接类型 和2000的DTS不同,SSIS有能力把XML作为结果集返回,如图 ![]() 然后你可以指定你要执行SQL的来源类型,比如是直接输入还是来自文件还是变量 ![]() 如果是来源是直接输入的话,你可以输入SQL语句在 SQLStatement 属性中(点击旁边的省略号弹出输入窗口) ![]() 任务的常见属性说明 BypassPrepare 是否在在发送到连接前分析SQL句子 Connection 指定执行SQL的连接 DelayValidation 是否延迟验证SQL的有效性,如果使用了只有在当前任务中产生的表(或其他对象)的话,则可启用当前属性 Description 中文描述 Disable 是否禁止当前任务 DisableEventHandlers 是否禁止事件触发 ExecValueVariable 如果任务来源为变量的话,则需要设置该属性 Expressions 用于给某些属性设置一个动态的表达式,这样可以使任务更加灵活,如图 ![]() FailPackageOnFailure 是否设置如果当前任务执行故障则整个包执行失败 FailParentOnFailure 是否设置如果当前任务执行故障则其父容器执行失败 IsolationLevel 事务隔离级别 IsStoredProcedure 是否为存储过程 TimeOut 超时设置 使用例子 1、从一个有2个输入参数的SQL查询中返回一个简单的值 首先我们要添加一些变量到包中,并为这些变量指定初始值,如图 ![]() CountOfEmployees 为输出参数 EndDate 和StartDate 为输入参数 在上图中你可以看得定义的变量有一个作用范围,父容器定义的变量子可以使用,反之不行(可以把包看出容器) 确定了变量后,我们需要为任务指定连接 然后我们选择SQLSourceType 属性为直接输入,然后在SQLStatement属性中输入如下句子,并指定返回结果为简单行 SELECT COUNT(*) AS CountOfEmployees FROM HumanResources.Employee WHERE (HireDate BETWEEN ? AND ?) 设置后的结果如图 ![]() 现在把指定的输入参数映射到变量,如图 ![]() 然后把SQL产生的输出也映射到变量,如图 ![]() OK,就这样,第一个例子完成了,调试运行把, 可以看得下面的结果 ![]() 看到了么,CountOfEmployees 变量的值由初始的0变成了2 2、返回一个记录集 这个例子中我们将返回一个记录集到一个变量(rsProducts),没有输入参数,有个返回的是一个记录集,故变量的类型需定义为object类型,初始值当然也为system.object了,如图 ![]() 然后在SQLStatement 属性中输入如下SELECT语句返回一个记录集,并指定返回结果为记录集 ![]() ![]() 之后当然也是参数映射了,如图 ![]() 好了,运行调试把,我们将看得结果集被作用一个COM对象返回 ![]() 3、执行一个存储过程并接收一个记录集、返回值、输出参数和传送一个输入参数 在这个例子中,我们将需要4个变量,一个为返回值,一个为输入,一个为输出,一个为记录集,我们将输入如下SQL句子 EXEC ?=dbo.sp_showAccountinCity ?,?output 然后进行参数映射,如图 ![]() ![]() 可以看出上面操作是非常简单,比2000的DTS强多了 4、从SQL查询中返回XML 从SQL中返回XML其实也大同小异,只需要稍微改一下即可 首先变量的类型依然是object,然后只需指定返回类型为XML即可 5、从一个变量中执行SQL句子 这也非常简单,首先定义一个变量,如user::statemenet,其为字符型,如图 ![]() 然后设置SQL来源类型为变量,在SQLStatement属性输入 user::statemenet即可 ![]() 6、从一个文件中执行SQL句子 基本上同5差不多 但首先应该建立一个文件类型的来源 ![]() 然后指定SQL来源类型为文件,然后指定文件来源就行了 ![]() |
相关文章推荐
- SSIS中ExecuteSQL TASK组件关于参数的使用
- SSIS中ExecuteSQL TASK组件关于参数的使用
- SSIS中ExecuteSQL TASK组件关于参数的使用 SQL2005
- [SQL2005]SSIS中ExecuteSQL TASK组件关于参数的使用
- SSIS中ExecuteSQL TASK组件关于参数的使用 SQL2005(zz)
- SSIS / ETL 中使用 Execute SQL Task 传入/传出参数
- ssis 的For each container组件中,若有 Execute SQL TASK Editor且其含参, 后者的Connection Type应设为 ADO.NET
- SSIS中ExecuteSQL TASK组件(基于2005 CTP 4月版)
- SSIS中ExecuteSQL TASK组件
- SSIS Execute SQL Task 用法
- 如何指定输出参数,当您使用在 sp _ executesql SQL Server 中存储过程
- [转]SSIS Execute SQL Task : Mapping Parameters And Result Sets
- 在execute sql task里面的sql如何传进参数和传出参数.
- SSIS中执行SQL任务组件参数传递的问题
- 微软BI 之SSIS 系列 - 使用 SQL Profilling Task (数据探测) 检测数据源数据
- 微软BI 之SSIS 系列 - Execute SQL Task 中的 Single Row 与 Full Result Set 的处理技巧
- [译]DbContext API中使用SqlQuery和ExecuteSqlCommand获取存储过程的输入输出参数
- 关于在设计SqlDataAdapter并使用带有参数的 SQL或存储过程时,出现的必须声明 @参数名 的错误解决方案
- SSIS中执行SQL任务组件参数传递的问题
- 利用SSIS进行SQL Server 数据导入导出——Lookup Plus组件的使用心得