2011-01-17 16 views
2

私はUTF-8データを含むライブMySQLデータベースを持っています。私はそれをSQL Server 2005に移行しようとしています。mysqlからSQL Server 2005へのutf-8データの移行

すべてのテーブルフィールドとすべてのデータはUTF8です。

宛先データベースには、SQL_Latin1_General_CP1_CI_AS照合があります。

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'); 

私のSQL ServerがGreek_CI_ASであり、照合: は私が何をしたか、これまでに以下の私のMySQLデータベースへのODBC接続を作成して行うことでした。

宛先データベースにはSQL_Latin1_General_CP1_CI_ASの照合順序があり、それが問題であるかどうかを確認するために、別の照合順序をGreek_CI_AS照合で作成しました。

インポートが正常に行われ、SQL Serverのすべてのテーブルフィールドが正しく作成されましたが、格納されたデータにはISO-8859-7のエンコーディングが含まれていました(ギリシャ語の照合から推定されます)。

私たちの現在のサイトはUTF-8ページを持っているので、これは問題ありません。

FirefoxとMDDB2を使用してデータを取得しようとすると、混乱した文字が表示されます。 View-> encodingをISO-8859-7に変更すると、データが正しく表示されますが、これは解決策ではありません。

この移行方法と出力先SQL Serverの正しいエンコード方法は?

任意のヘルプはあなたがMS SQL側で使用しているデータの種類を教えする必要が おかげ

答えて

0

を高く評価しました。

VARCHARまたはNVARCHARを使用していますか?

ユニコードデータを保存するには、NVARCHARを使用する必要があります。

関連する問題