2

我有一个带有 UTF-8 数据的实时 MySQL 数据库。我正在尝试将其迁移到 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-> encoding 更改为 ISO-8859-7 我可以正确看到数据..但这不是解决方案

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

任何帮助表示感谢

4

1 回答 1

0

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

您使用的是 VARCHAR 还是 NVARCHAR?

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

于 2011-03-17T01:02:34.043 回答