脚本任务

更新日期: 2006 年 7 月 17 日

脚本任务提供代码来执行内置任务中没有的函数以及 SQL Server 2005 Integration Services 提供的转换。脚本任务还可将函数组合到一个脚本中,而不必使用多个任务和转换。脚本任务用于完成必须在包中一次完成(或每个枚举对象一次)的工作,而不是每个数据行完成一次。如果需要使用脚本对集合中的每个数据行执行相同的工作,则应当使用脚本组件而不是脚本任务。例如,如果希望评估邮资金额的合理性,从而跳过金额极高或极低的数据行,则应当使用脚本组件。有关详细信息,请参阅脚本组件

这些由脚本任务创建的代码是自定义的 Microsoft Visual Basic .NET 代码,在包运行时编译和执行。

可以将脚本任务用于下列目的:

  • 用内置连接类型不支持的其他技术访问数据。例如,脚本可使用 Active Directory 服务接口 (ADSI) 访问 Active Directory,并从中提取用户名。
  • 创建特定于包的性能计数器。例如,脚本可以创建一个性能计数器,在运行复杂任务或性能差的任务时,该计数器将被更新。
  • 标识是否指定的文件为空或它们包含多少行,然后基于该信息影响包中的控制流。例如,如果文件包含零行,则将变量的值设置为 0,然后计算该值的优先约束将防止文件系统任务复制此文件。

可以采用下列方法来配置脚本任务:

  • 提供任务运行的自定义脚本。
  • 指定作为脚本入口点的函数的名称。
  • 指示是否预编译脚本。
  • 根据需要提供脚本中使用的只读和读/写变量列表。

脚本任务使用 Studio for Applications (VSA) 作为它写入和运行脚本的引擎。若要运行脚本,则运行包的计算机上必须安装有 VSA。

有关如何为脚本任务编写代码的详细信息,请参阅Extending the Package with the Script Task

如果脚本由多个包使用,请考虑使用自定义任务而不要使用脚本任务。有关详细信息,请参阅Developing a Custom Task

Visual Studio for Applications 环境

脚本任务提供对 VSA 环境的访问。Visual Studio .NET 环境的所有标准功能都可用,如颜色编码的 Visual Studio 编辑器、IntelliSense 和对象资源管理器。

运行包时,任务将加载脚本引擎并运行脚本。可以通过向项目中的程序集添加引用的方式来访问脚本中的外部 .NET 程序集。

与 ActiveX 脚本任务相比,脚本任务具有下列优势:

  • 集成开发环境。VSA 提供的 IDE 与其他 Microsoft 开发工具相同。
  • 集成调试器。通过 VSA,可以使用与其他 Microsoft 开发工具相同的调试器来调试脚本。脚本中的断点与 Integration Services 任务和容器上的断点可以无缝集合。
  • 公共语言运行时语言的使用。
  • 与 SSIS 设计器集成。

此脚本任务将替代 ActiveX 脚本任务。仅在必须要向后兼容时才使用 ActiveX 脚本任务。 下一版本的 Microsoft SQL Server 将删除该功能。请不要在新的开发工作中使用该功能,并尽快修改当前还在使用该功能的应用程序。

优化

必须在包运行前编译 VSA 脚本。脚本任务包含可在保存包时将脚本预编译为二进制代码的选项。预编译脚本后,运行时不会加载语言引擎,因此包的运行速度更快;但是,编译后的二进制文件会占用相当大的磁盘空间。如果不使用预编译选项,脚本将在运行时编译,这会使包执行速度缓慢,但所消耗的磁盘空间会更少。如果不存在存储大型包的问题,则应预编译 VSA 脚本。而且,只有预编译脚本才能在 64 位环境下运行。

选择是否预编译脚本时,另一个考虑因素是经过编译的脚本无法进行调试。默认情况下,脚本任务被配置为预编译它的脚本,并且它的 PreCompile 属性被设置为 True。在包的开发和调试期间,通常将 PreCompile 属性设置为 False,然后在部署包之前重置为 True

脚本任务可用的自定义日志记录消息

下表介绍了脚本任务的自定义日志项。有关详细信息,请参阅在包中实现日志记录日志记录的自定义消息

日志项 说明

ScriptTaskLogEntry

报告在脚本中实现日志记录的结果。在每次调用 Dts 对象的 Log 方法时将写入日志项。代码运行时将写入日志项。有关详细信息,请参阅Logging in the Script Task

配置脚本任务

可以通过 SSIS 设计器或以编程方式来设置属性。

有关可以在 SSIS 设计器中设置的属性的详细信息,请单击下列主题之一:

有关在 SSIS 设计器中如何设置这些属性的详细信息,请单击下列主题:

以编程方式配置脚本任务

有关以编程方式设置这些属性的详细信息,请单击以下主题:

请参阅

概念

Integration Services 任务
创建包控制流
64 位计算机上的 Integration Services 注意事项

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 7 月 17 日

更改的内容:
  • 添加了自定义日志项表。

2005 年 12 月 5 日

更改的内容:
  • 添加了有关脚本任务与脚本组件的最佳用法的提示。