0

我不确定为什么会发生这种情况,但我的脚本任务没有将 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
    };
}

它还没有完成,但我想检查变量是否被存储。我使用调试器检查了变量,在运行时变量发生了变化,但是如果我在执行后查看变量,它仍然是相同的值。我还检查了属性,ReadOnly并且False变量也添加到了包中。关于我做错了什么的任何想法?变量 ssis 中的变量声明

4

1 回答 1

1

一旦在断点处停止,请在监视窗口中查看变量以获取运行时值。变量窗口在调试期间不更新。

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

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

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

Select 1 From ImportedFiles Where FileName = ?

然后基于该查询,您可以设置逻辑以导入文件或跳过它。

于 2016-05-19T13:00:10.637 回答