sql-server-2005 - 使用 SSIS 更新表

标签 sql-server-2005 ssis dataflowtask

我正在尝试使用基于公共(public)键的另一个表中的数据更新表中的字段。如果它是直接 SQL,它会是这样的:

Update EHSIT
set e.IDMSObjID = s.IDMSObjID
from EHSIT e, EHSIDMS s
where e.SITENUM = s.SITE_CODE

但是,这两个表不在同一个数据库中,所以我尝试使用 SSIS 进行更新。哦,sitenum/site_code 一个是 varchar,另一个是 nvarchar,所以我必须进行数据转换,以便它们匹配。

我该怎么做?
我有一个数据流对象,源为 EHSIDMS,目标为 EHSIT。我有一个数据转换来将 unicode 转换为非 unicode。但是如何根据比赛进行更新?我已经尝试使用目标,使用 SQL 命令作为数据访问模式,但它似乎没有源表。如果我只是映射要更新的字段,它如何根据字段匹配来限制它?

我即将将我的源表导出到 Excel 或其他东西,然后尝试从那里输入,尽管似乎我能做的就是删除数据转换步骤。

不应该有更新数据任务之类的吗?它是那些数据流转换任务之一,我只是不知道它是什么?

最佳答案

您可以使用 SQLCommand(带参数),但实际上您正在编写 UPDATE对于每一行。我发现最好在目标端编写一个临时表(来自远程端的所有数据或由 SSIS 确定要更改的数据)并使用单个 SQL UPDATE执行更新。

关于sql-server-2005 - 使用 SSIS 更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/879853/

相关文章:

ssis - 如何在 ssis 包中的平面文件目标中保留空值

c# - 在 SSIS 脚本组件中使用 C# 将多个平面文件行提取为一个

sql-server - 如何以编程方式创建 SSIS 包?

sql - 缓存 SQL 执行计划

SQL从行数据而不是列数据中选择最小值

sql - 在SSIS中解析非结构化文本文件并读取每一行以获取所需的数据

sql-server - 在不同数据库模式之间同步数据的最佳技术?

asp.net - 在 VS 2008 中从 asp.net 代码调试 sql 存储过程

sql-server - "Prevent saving changes that require the table to be re-created"负面影响