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
};
}
还没有完成,但我想检查变量是否已存储。我使用调试器检查了变量,在运行时变量发生了变化,但如果我在执行后查看变量,它仍然是相同的值。
我还检查了属性,ReadOnly
是 False
,变量也被添加到包中。 对我做错了什么有什么想法吗?
在断点处停止后,查看手表 window 中的变量以获得 运行 时间值。调试期间未更新变量 window。
编辑:根据您的评论忽略以上内容。
您可以随时将变量保存在包中,包括结尾。我建议您使用执行 SQL 任务来:
Insert Into ImportedFiles (FileName, Imported) Values (?, getdate())
根据您对问题的评论,您想确定该文件之前是否已导入。你可以这样做:
Select 1 From ImportedFiles Where FileName = ?
然后根据该查询,您可以设置逻辑来导入文件或跳过文件。
我不确定为什么会发生这种情况,但我的脚本任务没有将 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
,变量也被添加到包中。
在断点处停止后,查看手表 window 中的变量以获得 运行 时间值。调试期间未更新变量 window。
编辑:根据您的评论忽略以上内容。 您可以随时将变量保存在包中,包括结尾。我建议您使用执行 SQL 任务来:
Insert Into ImportedFiles (FileName, Imported) Values (?, getdate())
根据您对问题的评论,您想确定该文件之前是否已导入。你可以这样做:
Select 1 From ImportedFiles Where FileName = ?
然后根据该查询,您可以设置逻辑来导入文件或跳过文件。