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