Перенос приложения из SQL Server 2012
в SQL Server 2017
.
Я выполняю следующие 2 запроса на импорт данных (Name
- это varchar
столбец, содержащий неанглийские буквы).
select Name from RemoteServer.RemoteDB.dbo.RemoteView
select coalesce(Name,'') from RemoteServer.RemoteDB.dbo.RemoteView
На SQL 2012 результаты идентичны.В SQL 2017 я вижу следующее:
![1](https://i.stack.imgur.com/gPYax.png)
В чем может быть причина?
К сожалению, я не могу изменить типы данных на удаленном сервере на nvarchar
.
ОБНОВЛЕНИЕ : дополнительная информация.
Свойства связанного сервера одинаковы (сценарий связанного сервера на SQL 2012
и его создание на SQL 2017
с использованием этого сценария).
На обоих серверах (по историческим причинам) сопоставление серверов (и сопоставление системных баз данных) равно Cyrillic_General_CI_AS
, мое сопоставление баз данных равно SQL_Latin1_General_CP1251_CI_AS
.
На удаленном сервере сопоставления как серверов, так и баз данныхCyrillic_General_CI_AS
.
В SQL 2012
оба запроса показывают данные в контексте любой базы данных.
В SQL 2017
он хорошо работает в системных базах данных и, как показано выше, в моей базе данных.Таким образом, это зависит от параметров сортировки базы данных.