早期 SSIS (SQL Server Integration Services) 的 ADO.NET Destination 可直接寫入 MySQL,但 2008 CTP 後版本變更導致不相容。官方已登記 Bug,暫時可用 ODBC 連接器繞過。
ADO.NET Destination 要求 MySQL 啟用 ANSI_QUOTES 模式(雙引號作為識別符引用),否則生成的 SQL 語法錯誤。
RetainSameConnection 設為 True(確保同一 Session)。SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ANSI_QUOTES';
該驅動存在 ParameterMarkerFormat 問題:批次插入時生成的 SQL 參數標記為 p1, p2... 而非實際值,導致語法錯誤:
Error: 0xC020844B Description: An exception has occurred during data insertion... You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"name", "date", "type", "remark") VALUES (p1, p2, p3, p4), (p1,p2,p3,p4)...
官方決定不修復此 Bug。替代方案:
RetainSameConnection = True。ANSI_QUOTES。