【发布时间】:2017-11-02 14:11:04
【问题描述】:
我有一个 SSIS 包,它运行执行 SQL 任务以获取行数,将其存储在变量中,然后使用脚本任务读取该变量并检查它是否大于 0。
我遇到的问题是,当我调试包时,它会将变量读取为 -1(我假设这只是 SQL 表示查询已成功执行),而不是数据库中的 38,000 多行。 据我所知,一切都已正确设置并以正确的方式编码,所以我不确定是什么原因造成的。
private byte[] emptyBytes = new byte[0];
public void Main()
{
int rowCount = Convert.ToInt32(Dts.Variables["User::SMART_rowcount"].Value.ToString());
if (rowCount > 0)
{
Dts.TaskResult = (int)ScriptResults.Success;
}
else
{
Dts.Log("The SMART Row Count Check has failed due to result set having no rows. Check table SMART.[SMART_SEC_MGMT_QUOTE_DATA].", (int)Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure, emptyBytes);
Dts.TaskResult = (int)ScriptResults.Failure;
}
}
编辑:
以下是这些和变量的流程:
【问题讨论】:
-
能否请您为解决问题添加一个包含这两个任务的流程屏幕以及一个包含包变量的屏幕?
-
@VladimirSemashkin 他们已经被添加了