EMail senden Mail an den Autor Drucken

vorhergehender Eintrag

nächster Eintrag

Inhalt

Hilfe Index

.

SQL Server

Datenmigration von mySQL nach MSSQL

Gehen Sie die Beschreibung genau in der vorgegebenen Reihenfolge durch

In diesem Kapitel

Daten richtig stellen

Linked Server anlegen um MySQL und MsSQL zu verbinden

Script erzeugen zum einfügen der Daten in den MsSQL

Primary Key setzen

64 bit Server

Weitere Kapitel

Neue Auswertungen

Umlaute auf SQL Datenbank richtig stellen

Datenbank kopieren

SQL Scripts

Trigger

Kplus SQL Server Funktionen

Kplus Datenbankanbindung fixieren

Falsche Collate auf der Datenbank

Aufmass (BAU_CODE) richtig stellen

Sql Script - Update von Lohnbuchungen von einem Benutzer zu einem anderen Benutzer

vorhergehender Eintrag

nächster Eintrag

Inhalt

Daten richtig stellen

Bevor man die Daten auf den MsSQL Server kopiert werden können müssen die Daten richtig gestellt werden. Es kann sein das z.B. Datumsfelder in MySQL falsch gespeichert wurden oder Felder mit NULL in der Datenbank sind.

Dazu gibt es das Hilfsprogramm MySQL_Daten_korrigieren.lbr die man vor der Umstellung starten sollte um solchen Fehlern vorzubeugen.

vorhergehender Eintrag

nächster Eintrag

Inhalt

Linked Server anlegen um MySQL und MsSQL zu verbinden

Microsoft SQL Management Studio starten und diesen Script ausführen (Daten je nach ODBC Verbindung eintragen)

Zu beachten ist das der Linked Server nur mit MySQL ODBC 5.1 funktioniert. Mit 3.51 kommen nicht alle Tabellen.

EXEC master.dbo.sp_addlinkedserver

@server = N'MYSQL5',

@srvproduct=N'MySQL',

@provider=N'MSDASQL',

@provstr=N'DRIVER={MySQL ODBC 5.1 Driver};

SERVER=192.168.1.220;

DATABASE=Kplus;

USER=kplus;

PASSWORD=kplus;

OPTION=1048576'

vorhergehender Eintrag

nächster Eintrag

Inhalt

Script erzeugen zum einfügen der Daten in den MsSQL

select 'select * into MsSQL.dbo.' + upper(TABLE_NAME) +

' from openquery(MYSQL5, ''select * from MySQL.' + TABLE_NAME + ''')'

from openquery(MYSQL5, 'SELECT * FROM INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='' MySQL''')

Das Ergebnis kann man dann in eine neue Query Abfrage einfügen und ausführen. Sieht so aus.

select * into MsSQL.dbo.D_ABTEILUNGEN from openquery(MYSQL5, 'select * from MySQL.d_abteilungen')

select * into MsSQL.dbo.D_AKTIV from openquery(MYSQL5, 'select * from MySQL.d_aktiv')

select * into MsSQL.dbo.D_AKTIV_BENUTZER from openquery(MYSQL5, 'select * from MySQL.d_aktiv_benutzer')

select * into MsSQL.dbo.D_ANBPOS from openquery(MYSQL5, 'select * from MySQL.d_anbpos')

vorhergehender Eintrag

nächster Eintrag

Inhalt

Primary Key setzen

Wenn man dann alle Tabellen auf dem Microsoft SQL Server hat muss man pro Tabelle die SEQ auf Primary Key setzen.

Bei meinen Tests wurde die Änderung blockiert.

Wenn das passiert muss man im Managment Studion auf Tools->Optionen gehen und alles einstellen wie im Screenshot.

Die Timeoutzeit muss man erhöhen damit bei großen Tabellen der Update ohne Fehler durchgeht.

Rechtsklick auf die Tabelle -> Modify

Rechtsklick auf die SEQ und Set Primary Key wählen(Schlüsselsymbol).

Danach muss man unten noch bei Identity Specification -> Is Identity auf YES stellen.

Zum Seitenanfang Drucken