SSIS:将创建日期添加到脚本任务中的变量
SSIS: Add Creation Date to Variable in Script Task
我正在尝试使用脚本任务获取 SSIS 中文件的创建日期。我创建了一个名为“User::File_Created”的变量并将该变量添加到以下脚本任务中:
public void Main()
{
string fileName = @"[FilePath]";
FileInfo fi = new FileInfo(fileName);
if (Dts.Variables.Contains("User::File_Created") == true)
{
Dts.Variables["User::File_Created"].Value = fi.CreationTime;
}
}
虽然完成后,我仍然只能看到存储在变量中的当前日期。任何帮助将不胜感激。
这是一个常见的混淆点。
变量 window 是您创建 SSIS 变量并分配 design-time 值的地方。设计时间值就是这样,只有设计。该包将使用这些值进行初始化,但它们可以在执行期间更改。当包终止时,它不会将当前值保存回包中,因为那是全部 run-time。设计时间保持不变。
要查看 run-time 值,需要拉起 Locals window,展开 Variables 集合节点,然后您可以看到所有当前值(或为其设置监视) .在这里你可以看到我的包裹正在飞行,因为我们有绿色节点(将我的变量值设置为 ZYX 的表达式任务)并且变量 window 显示 ABC 但局部变量 window 反映了真实值ZYX
要访问局部变量 window,在调试程序包时,单击 Windows、select 局部变量下的调试菜单。 https://docs.microsoft.com/en-us/visualstudio/debugger/autos-and-locals-windows?view=vs-2019
我正在尝试使用脚本任务获取 SSIS 中文件的创建日期。我创建了一个名为“User::File_Created”的变量并将该变量添加到以下脚本任务中:
public void Main()
{
string fileName = @"[FilePath]";
FileInfo fi = new FileInfo(fileName);
if (Dts.Variables.Contains("User::File_Created") == true)
{
Dts.Variables["User::File_Created"].Value = fi.CreationTime;
}
}
虽然完成后,我仍然只能看到存储在变量中的当前日期。任何帮助将不胜感激。
这是一个常见的混淆点。
变量 window 是您创建 SSIS 变量并分配 design-time 值的地方。设计时间值就是这样,只有设计。该包将使用这些值进行初始化,但它们可以在执行期间更改。当包终止时,它不会将当前值保存回包中,因为那是全部 run-time。设计时间保持不变。
要查看 run-time 值,需要拉起 Locals window,展开 Variables 集合节点,然后您可以看到所有当前值(或为其设置监视) .在这里你可以看到我的包裹正在飞行,因为我们有绿色节点(将我的变量值设置为 ZYX 的表达式任务)并且变量 window 显示 ABC 但局部变量 window 反映了真实值ZYX
要访问局部变量 window,在调试程序包时,单击 Windows、select 局部变量下的调试菜单。 https://docs.microsoft.com/en-us/visualstudio/debugger/autos-and-locals-windows?view=vs-2019