MySQL-Backup (Dump-Script) in MS SQL konvertieren?

7105
David

Ich habe eine mysqldumpziemlich große (in manuellen Schritten) Datenbank, die in einer Textdatei gespeichert ist. Kennt jemand eine (kostenlose) Möglichkeit, um dies zum Erstellen einer Datenbank in MS SQL zu verwenden? Ich verwende speziell SQL Server 2008.

1

2 Antworten auf die Frage

2
RolandoMySQLDBA

Sie können diese Daten erneut in MySQL laden und mysqldump folgendermaßen ausführen:

mysqldump -h ... -u ... -p ... --compatible = mssql> MSSQL_Compatible_Data.sql

Das sagt der mysqldump --help --verbose dazu

--compatible = name Ändert den Speicherauszug, um mit einem bestimmten Modus kompatibel zu sein.
Standardmäßig werden Tabellen in einem für
MySQL optimierten Format gesichert. Zulässige Modi sind: ansi, mysql323, mysql40,
postgresql, oracle, mssql, db2, maxdb, no_key_options,
no_table_options, no_field_options. Es können mehrere
durch Kommas getrennte Modi verwendet werden. Anmerkung: Erfordert die MySQL-Server-
Version 4.1.0 oder höher. Diese Option wird bei
früheren Serverversionen ignoriert .

Versuche es !!!

1
Ice

Ich habe so etwas verwendet:

-- Path/Filename of inputfile for later use declare @Out varchar(100) set @out = 'c:\data\Test\TBL1245.dat'  -- Define a structurefile based on a predefined target-table for later use: exec master..xp_cmdshell 'bcp DB4711.dbo.[TBL1245] format nul -t\t -c -x -f "c:\data\Test\Config\TBL1245.xml" -T'  -- initialie the targettable: truncate table DB4711.dbo.[TBL1245]  -- Load the data: INSERT DB4711.dbo.[TBL1245]  exec('SELECT *  FROM OPENROWSET ( BULK ''' + @out + ''', FORMATFILE = ''c:\data\Test\Config\TBL1245.xml'', ROWS_PER_BATCH = 100 ) as co_in where KeyFLD is not NULL') -- a condition may be set here if needed 

Angenommen, Sie haben eine Tabelle (TBL1245) in einer Datenbank (DB4711), in der sich alle Dateien Ihrer Datadumo-Datei befinden. Wenn Sie das Trennzeichen ändern müssen, sehen Sie in ms-bol die Parameter für bcp.