【问题标题】:Migrate utf-8 data from mysql to SQL Server 2005将 utf-8 数据从 mysql 迁移到 SQL Server 2005
【发布时间】:2023-03-22 09:03:02
【问题描述】:

我有一个实时 MySQL 数据库,其中包含 UTF-8 数据。我正在尝试将其迁移到 SQL Server 2005。

所有表格字段和所有数据都是 UTF8 格式。

目标数据库将具有 SQL_Latin1_General_CP1_CI_AS 排序规则。 到目前为止,我所做的是创建到我的 MySQL 数据库的 ODBC 连接并执行以下操作:

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。

目标数据库具有 SQL_Latin1_General_CP1_CI_AS 排序规则,我创建了另一个具有 Greek_CI_AS 排序规则的数据库,只是为了看看这是否是问题所在。

导入进展顺利,SQL Server 中的所有表字段均已正确创建,但存储的数据编码为 ISO-8859-7(我假设来自 Greek_CI_AS 排序规则)。

这是一个问题,因为我们当前的网站有 UTF-8 页面,应该保持这种状态。

如果我使用 Firefox 和 MDDB2 来尝试获取数据,我会遇到混淆的字符。如果我将 View-> 编码更改为 ISO-8859-7,我可以正确看到数据.. 但这不是解决方案

那么如何进行此迁移并在目标 SQL Server 上使用正确的编码?

任何帮助表示赞赏 谢谢

【问题讨论】:

    标签: mysql sql-server utf-8 collation migrate


    【解决方案1】:

    您需要告诉我们您在 MS SQL 端使用的数据类型。

    您使用的是 VARCHAR 还是 NVARCHAR?

    如果要存储 unicode 数据,则需要使用 NVARCHAR。

    【讨论】:

      猜你喜欢
      • 2011-07-02
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      • 2011-09-25
      相关资源
      最近更新 更多