转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Sql Server >> 正文
SSIS中ExecuteSQL TASK组件         

SSIS中ExecuteSQL TASK组件

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1058 更新时间:2007/11/14 13:10:52

SSIS中ExecuteSQL TASK组件
基于2005 CTP 4月版

在此文中将让你明白ExecuteSQL task组件在SSIS中的功能和作用,我将介绍下面内容:
  关于任务
  关于任务的属性
看完这些介绍后我将举出下面例子:
 从一个有2个输入参数的SQL查询中返回一个简单的值
 从一个SQL查询中返回一个记录集
 执行一个存储过程并接收一个记录集、返回值、输出参数和传送一个输入参数
 从SQL查询中返回XML
 从一个变量中执行SQL句子
 从一个文件中执行SQL句子

关于任务:
 我们可以从下图中找到ExecuteSQL TASK组件
 
 现在我们拖曳它在设计器上,可以看出它会提示你“当前组件没有指定连接”,如图
 
 我们可以很容易的给它指定连接,双击它,如图
 
 这样我们可以选择不同的连接类型
 和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来源类型为文件,然后指定文件来源就行了
   
总结
 好了,就写到此了,希望你能够喜欢
 该文的英文来源于 http://www.sqlis.com/default.aspx?58
 
    
   
  
   
    
      
   
   
        
 
    
    
  

    
      
  


[Sql Server]带参数的存储过程sp_executesql  [Sql Server]执行带嵌入参数的sql——sp_executesql
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台