通过 SQLCMD 将 sql 文件从 MySQL 导入到 MS SQL 时语法不正确
Incorrect syntax when import sql file from MySQL to MS SQL via SQLCMD
我有从 MySQL 导出的大型 .sql 文件,并尝试通过
将它们导入 MS SQL(localDB)
SQLCMD。但是当我在命令提示符中输入以下内容时:
sqlcmd.exe -S (localdb)\MSSQLLocaldb -i
C:\Users\Administrator\Desktop\SQLQuery4.sql
我收到以下错误消息:
Incorrect syntax near 'tblo'
我检查了我的 .sql 文件,似乎 SQLCMD 无法理解双引号
例如
INSERT INTO "tblo" VALUES (2,'DTT','10000286','Dp','y',2,38,'2010-02-22
11:03:51','2010-02-22 11:03:51');
但是,使用 SSMS
没问题
有解决这个问题的办法吗?
我自己找到了解决办法:
当我从 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 中的结果如下:
INSERT INTO tblo VALUES (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
我有从 MySQL 导出的大型 .sql 文件,并尝试通过
将它们导入 MS SQL(localDB)SQLCMD。但是当我在命令提示符中输入以下内容时:
sqlcmd.exe -S (localdb)\MSSQLLocaldb -i C:\Users\Administrator\Desktop\SQLQuery4.sql
我收到以下错误消息:
Incorrect syntax near 'tblo'
我检查了我的 .sql 文件,似乎 SQLCMD 无法理解双引号
例如
INSERT INTO "tblo" VALUES (2,'DTT','10000286','Dp','y',2,38,'2010-02-22 11:03:51','2010-02-22 11:03:51');
但是,使用 SSMS
没问题有解决这个问题的办法吗?
我自己找到了解决办法: 当我从 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 中的结果如下:
INSERT INTO tblo VALUES (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