查看文章 |
作者:AnyJack
留意表达式中各参数的内涵. 在此文中将让你明白ExecuteSQL task组件在SSIS中的功能和作用,我将介绍下面内容: 关于任务: 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来源类型为文件,然后指定文件来源就行了 ![]() 该文的英文来源于 http://www.sqlis.com/default.aspx?58 |





















