我不确定为什么会发生这种情况,但我的脚本任务并未将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
,变量也会添加到包中。 关于我做错的任何想法?
答案 0 :(得分:1)
在断点处停止后,在监视窗口中查看运行时值的变量。调试期间不会更新变量窗口。
编辑:根据您的评论忽略上述内容。 您可以随时在包中保存变量,包括结尾。我建议您使用执行SQL任务:
Insert Into ImportedFiles (FileName, Imported) Values (?, getdate())
根据您对问题的评论,您需要确定该文件是否先前已导入。你可以这样做:
Select 1 From ImportedFiles Where FileName = ?
然后根据该查询,您可以设置逻辑以导入文件或跳过它。