原文:Matt Masson - MSFT (2009-01-07)
SSIS 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 回傳值導致批次插入生成參數標記而非實際值:
Error: 0xC020844B Description: ... syntax to use near '"name", "date", "type", "remark") VALUES (p1, p2, p3, p4), (p1,p2,p3,p4)...
官方決定不修復。替代方案:
RetainSameConnection = True。SET sql_mode=... 包含 ANSI_QUOTES。