2017-04-07 1 views
0

J'ai de gros fichiers .sql exportés de MySQL, et essayer de les importer dans MS SQL (localdb) viasyntaxe incorrecte lorsque le fichier sql import depuis MySQL vers MS SQL via SQLCMD

SQLCMD. Mais quand je tape ce qui suit dans l'invite de commande:

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

Je reçu le message d'erreur suivant:

syntaxe incorrecte près de 'tblo'

J'ai vérifié mon dossier sql, il semble SQLCMD c ne comprend pas les guillemets

par exemple.

INSERT INTO valeurs "tblo" (2, 'DTT', '10000286', 'Dp', 'y', 2,38, '22.02.2010 11:03:51 ', » 2010-02-22 11:03:51 ');

Cependant, il est très bien avec SSMS

Toute idée pour résoudre ce problème?

+0

Vous ne pouvez pas importer un fichier mysqldump directement dans le fichier mssql – Jens

+0

Pas exactement. Si j'effectue ces fichiers .sql dans SSMS, je peux importer avec succès. Et j'ai trouvé que si je supprime les guillemets dans ceux-ci, je peux aussi importer par SQLCMD. Mais c'est trop de désagrément. Donc j'aimerais savoir s'il est possible de laisser mon SQLCMD comprendre les guillemets. –

Répondre

1

J'ai trouvé une solution par moi-même: je peux ajouter --skip-quote-noms drapeau quand je largue les données de MySQL

par exemple

mysqldump.exe -hlocalhost -Unom_utilisateur -pPassword --compatible = mssql --no-créer-info --skip-quote-noms --skip-add-serrures DataBase tblo> D: \ Test \ dump.sql

Résultat dans dump.sql fera:

INSERT INTO tblo VALUES (2, 'DTT', '10000286', 'DP', 'y', 2, 38, '2010-02-22 11:03:51', '2010-02-22 11:03:51');

Je peux donc utiliser cette .sql pour importer directement les données dans le serveur MS SQL via SQLCMD

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