Мой 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'
Будет отображаться ошибка:
Поставщик OLE DB "MSDASQL" для связанного сервера "NTEMYSQL" вернул сообщение "Строка не можетбыть найдены для обновления. Некоторые значения могли быть изменены с момента последнего чтения. "Сообщение 7343, уровень 16, состояние 4, строка 3 Поставщик OLE DB "MSDASQL" для связанного сервера "NTEMYSQL" не смог обновить таблицу "[MSDASQL]".В наборе строк использовался оптимистичный параллелизм, и значение столбца было изменено после последней выборки или повторной синхронизации содержащейся строки.
Если я выбрал first_name с помощью OPENQUERY (на сервере sql)
select first_name from OPENQUERY(NTEMYSQL,N'select * from
data_source_db.employees') mysqlEmp
where id_number='A0002779'
результат: PHILIP NI? O
Если я выберу first_name в Mysql
select first_name from data_source_db.employees where id_number ='A0002779'
результат:
Я думаю, что специальные символы делают мою ошибку обновления sql
- Sql Server: column "FirstName" Тип: nvarchar
- My sql: column "first_name "Тип: utf8mb4_unicode_ci
Как мне решить эту проблему?