Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSIS:在两个位置使用时间的变量表达式_Ssis - Fatal编程技术网

SSIS:在两个位置使用时间的变量表达式

SSIS:在两个位置使用时间的变量表达式,ssis,Ssis,我有一个变量表达式,它附加了一些日期部分,在两个单独的任务中用作文件名 但是当第二个任务完成时,时间已经改变,变量也随之改变。基本上,我在一个文件夹中创建一个文件用于FTP导出。但是当FTP任务去拾取它时,它“不在那里”,因为自从文件的初始创建和FTP任务试图拾取它以来,时间已经改变了 平面文件name和FTPLocalPath都使用变量“FilePath”,即: "C:\\WFSDEV_WSD_SHIP_FROM_STORE_" + (DT_WSTR,4)DATEPART("yyyy",Get

我有一个变量表达式,它附加了一些日期部分,在两个单独的任务中用作文件名

但是当第二个任务完成时,时间已经改变,变量也随之改变。基本上,我在一个文件夹中创建一个文件用于FTP导出。但是当FTP任务去拾取它时,它“不在那里”,因为自从文件的初始创建和FTP任务试图拾取它以来,时间已经改变了

平面文件
name
和FTP
LocalPath
都使用变量“FilePath”,即:

"C:\\WFSDEV_WSD_SHIP_FROM_STORE_" + (DT_WSTR,4)DATEPART("yyyy",GetDate()) + 
RIGHT("0" + (DT_WSTR,2)DATEPART("mm",GetDate()) ,2) + 
RIGHT("0" + (DT_WSTR,2)DATEPART("dd",GetDate()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("hh",GetDate()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("mm",GetDate()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART()),2) +
".VD01"

是否有一种方法可以在包的开头设置此变量,并在不更改的情况下使用它?

不要使用
GETDATE()
,因为每次检查时都会对其进行评估

相反,选择一个值,该值在SSIS包的持续时间内保持不变,但在包开始时更新。我的首选是
@[System::StartTime]
,但有些人可能更喜欢
@[System::ContainerStartTime]
前者在包开始执行时设置,另一个在每个容器内重置(ForEach循环等)