SSI使用sql选择的结果更新列
我想知道是否有一种方法可以通过在每一行上运行select来更新数据流任务中的列 情况如下: 让我们以此为出发点。我从两个文件中收集信息,然后合并它们,并使用派生列工具添加一列。是否有一种方法可以通过使用行的值对每行执行select来填充此列 例: 我不知道我是否只是没有正确地表达我的需求,但我没有得到任何结果SSI使用sql选择的结果更新列,sql,ssis,Sql,Ssis,我想知道是否有一种方法可以通过在每一行上运行select来更新数据流任务中的列 情况如下: 让我们以此为出发点。我从两个文件中收集信息,然后合并它们,并使用派生列工具添加一列。是否有一种方法可以通过使用行的值对每行执行select来填充此列 例: 我不知道我是否只是没有正确地表达我的需求,但我没有得到任何结果 谢谢您应该可以通过查找转换来完成此操作 根据评论进行编辑: 如果由于表的大小而不想使用查找,则可以使用脚本组件执行所需的操作。您可以像在任何.net应用程序中一样,为数据流的每一行创建和
谢谢您应该可以通过查找转换来完成此操作 根据评论进行编辑:
如果由于表的大小而不想使用查找,则可以使用脚本组件执行所需的操作。您可以像在任何.net应用程序中一样,为数据流的每一行创建和执行SQL命令。您应该能够通过查找转换来完成此操作 根据评论进行编辑:
如果由于表的大小而不想使用查找,则可以使用脚本组件执行所需的操作。您可以像在任何.net应用程序中一样,为数据流的每一行创建和执行SQL命令。我可以使用脚本组件来完成这项工作 1-我已删除派生列 2-我已经创建了一个字符串变量,在其中存储了一个带有通配符字符串的查询,以替换我需要从该行获取的每个值 3-我已经将这个变量allong和一个包含connection字符串信息的变量一起传递给脚本组件 4-我在脚本组件的输出列中添加了一个新列 5-使用System.Data.OleDb添加
代码>
6-创建了两个变量:
string jourFerieQuery;
string dbcsoledbschema;
7-更新PostExecute()以将my SSIS变量的值放入脚本变量:
public override void PostExecute()
{
base.PostExecute();
jourFerieQuery = Variables.jourFerieQuery;
dbcsoledbschema = Variables.dbcsoledbschema;
}
8-增加了一种方法:
int GetData(string cs, string query)
{
OleDbConnection conn = new OleDbConnection(cs);
conn.Open();
OleDbCommand cmd = new OleDbCommand(query, conn);
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
conn.Close();
return (int)dt.Rows[0][0];
}
9-更新了Input0\u进程InputRow(Input0Buffer行):
我的查询返回一个计数,这就是为什么我添加的方法返回一个int,我可以用一个脚本组件来完成它
1-我已删除派生列
2-我已经创建了一个字符串变量,在其中存储了一个带有通配符字符串的查询,以替换我需要从该行获取的每个值
3-我已经将这个变量allong和一个包含connection字符串信息的变量一起传递给脚本组件
4-我在脚本组件的输出列中添加了一个新列
5-使用System.Data.OleDb添加代码>
6-创建了两个变量:
string jourFerieQuery;
string dbcsoledbschema;
7-更新PostExecute()以将my SSIS变量的值放入脚本变量:
public override void PostExecute()
{
base.PostExecute();
jourFerieQuery = Variables.jourFerieQuery;
dbcsoledbschema = Variables.dbcsoledbschema;
}
8-增加了一种方法:
int GetData(string cs, string query)
{
OleDbConnection conn = new OleDbConnection(cs);
conn.Open();
OleDbCommand cmd = new OleDbCommand(query, conn);
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
conn.Close();
return (int)dt.Rows[0][0];
}
9-更新了Input0\u进程InputRow(Input0Buffer行):
我的查询返回一个计数,这就是我添加的方法返回int的原因。您可以通过脚本组件(转换)来实现这一点
添加一个Ct输出
我使用System.Data.OleDB,因为它与SSIS包连接字符串相匹配。您可以通过脚本组件(转换)来实现这一点
添加一个Ct输出
我使用System.Data.OleDB,因为它与SSIS包连接字符串相匹配。我无法这样做,因为查询每行都会发生变化,而且我不想加载整个表,因为它太大了。但如果可能的话,我想看看如何谢谢你,这就是我最后要做的。我已经列出了解决方案中的一些步骤,当查询随着每一行的变化而变化时,postedI无法完成这些步骤,我不想加载整个表,因为它太大了。但如果可能的话,我想看看如何谢谢你,这就是我最后要做的。我已经列出了解决方案中的步骤,这些步骤都是postedIt始终有助于获得详细信息。postedIt始终有助于获得详细信息