2008-11-20 3 views

Antwort

0

Wenn Sie Zugriff auf phpMyAdmin haben Sie könnten einen Export der gesamten Datenbank. Es wird eine lange Liste von SQL-Befehlen generieren, um das gesamte Schema zu erstellen und optional alle Daten an den entsprechenden Stellen einzufügen.

Es ist auch möglich, all dies über die Befehlszeile auszuführen.

Wenn Sie viele Daten haben, möchten Sie vielleicht alles in Teilen machen, einzelne SQL-Skripte für jede Tabelle und die Einfügungen in jede Tabelle.

Dann auf der M $ SQL-Seite nur die Datenbank erstellen, eine Verbindung mit SQL Query Analyzer oder SQL Management Studio herstellen, copy-n-paste Ihre SQL-Skripte in das Fenster einfügen und ausführen.

Chancen sind eine Mehrheit Ihrer MySQL-Code wird nur in M ​​$ SQL arbeiten. Wenn Probleme auftreten, können Sie eine Kompatibilitätsebene für den MySQL-Export festlegen, damit sie besser in Ihre Zielumgebung passt.

Wenn Sie nur Daten tun, solange das Schema übereinstimmen, alles, was Sie Skript müssen, ist der Datenimport/-export, Skript nicht das Schema und sicher nicht Skript Tropfen !!!

EDIT: Wenn Sie irgendwelche Transformationen haben, glaube ich, dass Sie nach M $ Excel exportieren können, sicherlich in eine CSV, dann auf den M $ SQL-Import tun Sie Ihre Mappings und so.

+0

Sind verwenden können, dass alle MySQL-Datentypen mit Typen Mssql Daten kompatibel sind ??? – Fred

0

Mein Team hat kürzlich das Gegenteil getan, SqlServer zu MySql, mit dem MySql Migration Toolkit (um eine Fogbugz-Installation von Windows nach Linux zu verschieben) und es hat sehr gut funktioniert. Wir hatten Probleme mit einem Tool namens MSSQL2MySql, es funktionierte nicht so gut. Ich bin mir nicht sicher, ob das Migrations-Toolkit die umgekehrte Richtung behandelt, aber es könnte einen Blick wert sein.

8
-- Create Link Server 

EXEC master.dbo.sp_addlinkedserver 
@server = N'MYSQL', 
@srvproduct=N'MySQL', 
@provider=N'MSDASQL', 
@provstr=N'DRIVER={MySQL ODBC 5.1 Driver}; SERVER=localhost; _ 
    DATABASE=tigerdb; USER=root; PASSWORD=hejsan; OPTION=3' 

-- Import Data 

SELECT * INTO testMySQL.dbo.shoutbox 
FROM openquery(MYSQL, 'SELECT * FROM tigerdb.shoutbox') 
+0

Ich habe das benutzt. Es funktioniert gut, um das grundlegende Tabellenschema zu erstellen und die Zeilen zu kopieren (was wirklich nett ist). Ich habe jedoch nicht gesehen, dass meine Indizes oder Schlüssel übergelaufen sind. Ich vermute, einige Datentypen können fehlschlagen, aber so weit so gut. Vielen Dank! –

+0

Ich bin mit diesem Ansatz auf alle möglichen Arten von Fehlern gestoßen. Beispielsweise erfordern Varchar-Spalten mit einer Länge von mehr als 4000 die Verwendung des ANSI-Treibers, andernfalls versucht es eine nvarchar-Spalte zu erstellen und schlägt fehl, da die maximale angegebene Länge 4000 ist. Auch ohne die Konfiguration sehr spezifischer Optionen wie "SQL NULL zurückgeben" DATA für Null-Datum "und" Enable SQL_AUTO_IS_NULL "und" Bind minimales Datum als Null-Datum ", dort mehr Fehler. Ohne weitere Optionen, die konfiguriert werden können, bekomme ich jetzt "Fehler beim Konvertieren des Datentyps DBTYPE_DBTIMESTAMP in datetime2" und erwarte, dass noch mehr passiert. – Triynko

+0

Ich habe das Problem festgestellt als "Fehler beim Konvertieren des Datentyps DBTYPE_DBTIMESTAMP nach datetime". Ich musste die Daten von MySql zuerst zu CSV und dann weiter zu MS-SQL Server exportieren, beide Schritte mit Data Transformation Services als VB gespeichert Moduldatei und es war ziemlich glatt. Unnötig zu sagen, die Felder werden als varchar (8000) exportiert. Aber das war für mich besser als DBType_DBTIMESTAMP Felder überhaupt nicht exportiert werden und zwischendurch. –

1

MySQL to MS SQL Server Datenbank konvertieren Sie Sie sicher, dass Microsoft SQL Server Database Migration Assistant

+0

Dies ist der aktuelle Link http: //blogs.msdn.com/b/ssma/ Zusätzlich zu MySQL unterstützt es Oracle, Sybase und MS Access. –

Verwandte Themen