2011-01-17 7 views
2

Ich habe eine Live-MySQL-Datenbank mit UTF-8 Daten drin. Ich versuche, es zu SQL Server 2005 zu migrieren.Migrieren von UTF-8-Daten von MySQL zu SQL Server 2005

Alle Tabellenfelder und alle Daten sind in UTF8.

Die Zieldatenbank enthält die Sortierung SQL_Latin1_General_CP1_CI_AS. Was ich tat, war bisher eine ODBC-Verbindung zu meiner MySQL-Datenbank zu erstellen und wie folgt vorgehen:

EXEC master.dbo.sp_addlinkedserver @server = N'MYSQL2', @srvproduct=N'MySQL', @provider=N'MSDASQL', @provstr=N'DRIVER={MySQL ODBC 5.1 Driver}; SERVER=SERVERHOST; DATABASE=mysqldb; USER=mysqluser;PASSWORD=PASSWORD; OPTION=3;charset:utf8;'; 

select * into mssql.dbo.members from openquery(MySQL, 'select * from mysqldb.members'); 

die Sortierung, die mein SQL Server hat Greek_CI_AS ist.

Die Zieldatenbank hat die Sortierung SQL_Latin1_General_CP1_CI_AS, und ich habe eine weitere mit der Sortierung greek_CI_AS erstellt, um festzustellen, ob dies das Problem war.

Der Import verlief gut und alle Tabellenfelder in SQL Server wurden korrekt erstellt, aber die Daten, die gespeichert wurden, hatten die Codierung ISO-8859-7 (was vermutlich aus der Kollatierung Greek_CI_AS stammt).

Dies ist ein Problem, da unsere aktuelle Seite UTF-8 Seiten hat und es sollte so bleiben.

Wenn ich Firefox und MDDB2 verwende, um die Daten zu bekommen, bekomme ich verwechselte Zeichen. Wenn ich die Ansicht-> Codierung nach ISO-8859-7 ändere, sehe ich die Daten richtig. Aber das ist nicht die Lösung

So wie diese Migration zu tun und haben die richtige Codierung auf dem Ziel SQL Server?

jede Hilfe dankbar Dank

Antwort

0

Sie brauchen, um uns zu erklären, welche Arten von Daten, die Sie auf der MS SQL-Seite verwenden.

Verwenden Sie VARCHAR oder NVARCHAR?

Sie müssen NVARCHAR verwenden, wenn Sie Unicode-Daten speichern möchten.