我正在尝试使用 SQL Server 2008 SSIS 将行从 Access 数据库插入 MySQL 数据库。
TITLE: Microsoft SQL Server Management Studio
------------------------------
ERROR [42000] [MySQL][ODBC 5.1 Driver][mysqld-5.0.51a-community-nt]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 '"orders"' at line 1
问题出在分隔符上。我使用的是 5.1 ODBC 驱动程序,我可以连接到 MySql 并从 ADO.Net 目标数据源中选择一个表。
MySql 表在 SSIS 包编辑器中全部显示为用双引号分隔:
"shipto addresses"
如果表名称中存在空格,则从 ADO.NET 目标编辑器上的“使用表或视图”文本框中删除双引号或将其替换为其他内容将不起作用。
当 SSIS 将插入查询放在一起时,它会保留双引号并添加单引号。
当我在编辑器中单击“预览”时,会显示上面的错误,并且当我运行包时会引发类似的错误(尽管是来自实际的插入语句)。
我似乎无法控制这种行为。有什么建议么?我可以手动编写 SQL 的其他包类型不存在此问题。
抱歉 InnerJoin,我不得不从你那里拿走已接受的答案。我发现这里有一个解决方法 http://blogs.msdn.com/mattm/archive/2009/01/07/writing-to-a-mysql-database-from-ssis.aspx:
解决方案是对所有任务重复使用连接,并在执行任何插入之前为连接打开 ANSI 引号,并使用运行以下命令的执行 Sql 任务:
set sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,
NO_ENGINE_SUBSTITUTION,ANSI_QUOTES'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)