在SSIS数据流任务和执行流程任务中使用变量

时间:2017-12-26 16:28:57

标签: sql-server variables ssis script-task dataflowtask

我创建了一个包并添加了一个数据流任务,该任务从数据库中读取数据并创建一个平坦的xml文件。然后它将文件存储在我给出的路径中,执行进程任务将其上载到远程服务器。下面是结构的样子:

enter image description here

数据流任务是这样的:

enter image description here

执行流程任务如下:

enter image description here

所以他们现在都工作正常,因为我有数据流平坦文件进程和执行进程任务的绝对目录路径。

但我想要做的是删除绝对路径并使用相对路径到package.dtsx文件的根文件夹而不是所有可执行文件,存储扁平的xml文件等。

因此,在线研究后,这两个链接herehere证明非常有用。我创建了一个变量和脚本任务,如上面的第一个截图所示。脚本任务的详细信息如下:

enter image description here

以下是脚本任务的主要功能:

enter image description here

添加变量后,我能够在包属性中看到变量PackagePath被分配了一些像\Package\task-name这样的值:

enter image description here

但是我不确定它是什么路径以及如何到达根目录或将根目录路径分配给变量。

我是SSIS的新手,所以不确定我做错了什么或错过了什么。过去几天一直在努力解决这个问题。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

要在执行流程任务中使用变量,您必须使用表达式,打开Execute Process Task编辑器,转到表达式选项卡并编写表达式。

您可以参考这篇文章获取详细示例:

您还可以阅读有关Execute Process Task的更多信息并在以下位置撰写表达式:

注意:右键单击Execute Process Task并选择Properties。在属性窗口中,您将有一个DelayValidation选项,当前设置为False将其翻转为True