我正在编写一个SSIS包,它具有从SQL Server源拆分记录以更新或插入MYSQL数据库的条件拆分。使用SSIS更新MYSQL中的记录
SQL Server连接具有用于OldDB \ SQL Server Native Client 10.0的提供程序.NET Provider。
MYSQL连接是MYSQL ODBC 5.1 ADO.NET连接。
我正在考虑使用OLE DB命令分支条件拆分来更新记录,但我连接使用此并连接到MYSQL数据库。
有谁知道如何完成这项任务?
我正在编写一个SSIS包,它具有从SQL Server源拆分记录以更新或插入MYSQL数据库的条件拆分。使用SSIS更新MYSQL中的记录
SQL Server连接具有用于OldDB \ SQL Server Native Client 10.0的提供程序.NET Provider。
MYSQL连接是MYSQL ODBC 5.1 ADO.NET连接。
我正在考虑使用OLE DB命令分支条件拆分来更新记录,但我连接使用此并连接到MYSQL数据库。
有谁知道如何完成这项任务?
我会写一个临时表进行更新,包括要更新的PK和列,然后使用该表和要更新的表来执行UPDATE SQL语句。另一种方法是对每一行都使用这个命令,而且根据我的经验,这似乎没有那么好 - 至少与一个很好的胖批量插入和一个更新命令相比。
对于这个问题,我猜你完全可以在没有条件分割的情况下将所有内容写入临时表,然后在SQL中使用UPDATE和INSERT。
也许,以下MSDN博客链接可能会对您有所帮助。我没有试过这个。
How do I UPDATE and DELETE if I don’t have an OLEDB provider?
的职位提出了以下三个选项。
笔者也已经发布了关于MySQL的另外两篇文章发布上述文章之前的自定义组件(如Merge destination component)数据。
Writing to a MySQL database from SSIS
希望指向你在正确的方向。
对不起,第一次使用SSIS。 – JBone
当你创建一个临时表shoudl我可能使用一个表变量或CTE?另外我该如何执行更新声明?在流程或数据流窗口中完成了吗? – JBone
登台表应该是数据库中的常规表格。在控制流中,CREATE/TRUNCATE表(执行任务),然后执行数据流,然后回到控制流中执行UPDATE(另一个执行任务)。看看这个博客条目:http://www.ssistalk.com/2009/10/29/ssis-why-is-my-data-flow-so-slow-with-an-ole-db-command-零件/ –