【发布时间】: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