【问题标题】:Incorrect syntax when import sql file from MySQL to MS SQL via SQLCMD通过 SQLCMD 将 sql 文件从 MySQL 导入 MS SQL 时语法不正确
【发布时间】:2017-09-02 13:35:09
【问题描述】:

我有从 MySQL 导出的大型 .sql 文件,并尝试通过

将它们导入 MS SQL(localDB)

SQLCMD。但是当我在命令提示符中输入以下内容时:

sqlcmd.exe -S (localdb)\MSSQLLocaldb -i C:\Users\Administrator\Desktop\1\SQLQuery4.sql

我收到以下错误消息:

“tblo”附近的语法不正确

我检查了我的 .sql 文件,似乎 SQLCMD 无法理解双引号

例如

插入“tblo”值(2,'DTT','10000286','Dp','y',2,38,'2010-02-22 11:03:51','2010-02-22 11:03:51');

不过,SSMS

没问题

有解决这个问题的办法吗?

【问题讨论】:

  • 不能将mysqldump直接导入mssql
  • 不完全是。如果我在 SSMS 中执行这些 .sql 文件,我可以成功导入。我发现如果我删除这些中的双引号,我也可以通过 SQLCMD 导入。但是太不方便了。所以我想知道是否有可能让我的 SQLCMD 理解双引号。

标签: mysql sql-server sql-server-2008 sqlcmd


【解决方案1】:

我自己找到了解决方案: 当我从 MySQL 转储数据时,我可以添加 --skip-quote-names 标志

例如

mysqldump.exe -hlocalhost -uUserName -pPassword --compatible=mssql --no-create-info --skip-quote-names --skip-add-locks DataBase tblo > D: \Test\dump.sql

dump.sql 中的结果如下:

插入 tblo 值 (2,'DTT','10000286','Dp','y',2,38,'2010-02-22 11:03:51','2010-02-22 11 :03:51');

所以我可以使用这个 .sql 通过 SQLCMD 直接将数据导入 MS SQL 服务器

sqlcmd -S (localdb)\MSSQLLocaldb -i D:\Test\dump.sql

【讨论】:

    猜你喜欢
    • 2010-09-16
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 2018-02-06
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多