SSIS 脚本任务将日期时间存储在变量中

SSIS Script task storing DateTime in variable

我不确定为什么会发生这种情况,但我的脚本任务没有将 DateTime-Value 存储在变量中。 这是(到目前为止)我写的非常基本的代码:

[Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
    public void Main()
    {
        DateTime creationTime;
        DateTime modifiedTime;
        DateTime oldCreationDate = (DateTime)Dts.Variables["User::OldFileDate"].Value;
        DateTime oldModifiedTime = (DateTime)Dts.Variables["User::OldModifiedDate"].Value;

        Dts.Variables["User::OldFileDate"].Value = DateTime.Now;

        Dts.TaskResult = (int)ScriptResults.Success;
    }

    enum ScriptResults
    {
        Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
        Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
    };
}

还没有完成,但我想检查变量是否已存储。我使用调试器检查了变量,在运行时变量发生了变化,但如果我在执行后查看变量,它仍然是相同的值。 我还检查了属性,ReadOnlyFalse,变量也被添加到包中。 对我做错了什么有什么想法吗?

在断点处停止后,查看手表 window 中的变量以获得 运行 时间值。调试期间未更新变量 window。

编辑:根据您的评论忽略以上内容。 您可以随时将变量保存在包中,包括结尾。我建议您使用执行 SQL 任务来:

Insert Into ImportedFiles (FileName, Imported) Values (?, getdate())

根据您对问题的评论,您想确定该文件之前是否已导入。你可以这样做:

Select 1 From ImportedFiles Where FileName = ?

然后根据该查询,您可以设置逻辑来导入文件或跳过文件。