我的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'
-SQL Server:列“ FirstName”类型:nvarchar
-我的sql:列“ first_name”类型:utf8mb4_unicode_ci
我该如何解决这个问题?