使用特殊字符从Sql Server更新MySql

时间:2018-09-27 06:43:13

标签: mysql sql-server unicode

我的Sql服务器SQL如下:

update mysqlEmp
set first_name=FirstName
FROM OPENQUERY(NTEMYSQL,'select * from data_source_db.employees') mysqlEmp 
INNER JOIN Employee on Employee.ID=mysqlEmp.id_number
WHERE CONVERT(date,Employee.Editdate) between '2018-09-19' AND '2018-09-26'
  AND (mysqlEmp.first_name!=Employee.FirstName)
  and employee.id='A0002779'

它将显示错误:

  

已返回链接服务器“ NTEMYSQL”的OLE DB提供程序“ MSDASQL”   消息“无法找到行进行更新。某些值可能已经   自上次读取以来已更改。”。消息7343,级别16,状态4,第3行   链接服务器“ NTEMYSQL”的OLE DB提供程序“ MSDASQL”无法   UPDATE表“ [MSDASQL]”。行集使用乐观并发   并且包含行之后的列值已更改   最后一次获取或重新同步。

如果我使用OPENQUERY(在SQL Server中)选择名字

select first_name from OPENQUERY(NTEMYSQL,N'select * from 
data_source_db.employees') mysqlEmp 
where id_number='A0002779' 

结果:PHILIP NI?O

如果我选择Mysql中的名字

select first_name from data_source_db.employees where id_number ='A0002779'

结果:enter image description here

我认为特殊字符enter image description here使我的sql更新出错了

-SQL Server:列“ FirstName”类型:nvarchar

-我的sql:列“ first_name”类型:utf8mb4_unicode_ci

我该如何解决这个问题?

0 个答案:

没有答案