gpt4 book ai didi

c# - 将查询结果传递给 SSIS 中的变量

转载 作者:太空宇宙 更新时间:2023-11-03 22:51:48 25 4
gpt4 key购买 nike

我有一个 SSIS 包,它运行执行 SQL 任务来获取行数,将其存储在变量中,然后使用脚本任务读取该变量并检查它是否大于 0。

我遇到的问题是,当我调试包时,它将变量读取为 -1(我假设这只是表示查询成功执行的 SQL),而不是数据库中的 38,000 多行。据我所知,一切都已正确设置并以正确的方式编码,所以我不确定是什么导致了这种情况。

执行 SQL 任务设置: enter image description here enter image description here

来自脚本任务的代码: enter image description here

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;
}
}

编辑:

这是这些变量的流程:

enter image description here enter image description here

最佳答案

在执行 SQL 任务的 ResultSet 选项卡中,您没有将列的名称放在“结果名称”列中。您放置了列的从零开始的索引。

因此,Result Name 下不应包含“Smart_Count”,而应包含“0”。

关于c# - 将查询结果传递给 SSIS 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47077383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com