Конфликт сопоставления SQL Server - PullRequest
4 голосов
/ 13 февраля 2009

Передача данных с одного SQL-сервера на другой, но при сравнении и синхронизации схемы происходит следующая ошибка. Мы используем сравнение Redgate SQL для завершения.

Невозможно разрешить конфликт сопоставления для операции равной

Базовый сервер SQL - SQL_Latin1_General_CP1_CI_AS, а сервер назначения - Latin1_General_CI_AS

Ответы [ 5 ]

6 голосов
/ 13 февраля 2009

SQL Compare имеет возможность игнорировать параметры сортировки. Посмотрите на вкладку «Параметры» в конфигурации вашего проекта сравнения.

0 голосов
/ 25 сентября 2014

«Игнорировать сопоставления» определенно не сработает по причине, указанной выше. Проблема возникает при переносе объектов, таких как представления и хранимые процедуры, которые используют предложения JOIN для текстовых полей, которые имеют различные параметры сортировки.

Если кто-то изменяет параметры сортировки по умолчанию на сервере, а столбец на другой стороне JOIN использует определенный параметр сортировки, вы вызвали эту проблему. И это произойдет в SQL Compare так же, как если бы вы просто вручную создавали сценарий для объекта в SSMS и перемещали его самостоятельно.

Существует два пути его исправления - вы можете указать в соединении предложение COLLATE и явно указать порядок сортировки, который вы хотите использовать, или изменить сопоставление по умолчанию для целевой базы данных в соответствии с источником.

Боюсь, что нет SQL. Сравните "magic bullet", чтобы решить эту проблему.

0 голосов
/ 21 февраля 2011

Способ, которым я преодолеваю это, состоит в том, чтобы сгенерировать сценарии с помощью SQL Compare, а затем удалить (или заменить) специфичный для Collation код. Это относительно быстро и легко сделать, и, наконец, я вручную применяю сценарии к целевому серверу / базе данных.

0 голосов
/ 13 февраля 2009

у вас проблемы с качеством SQL Compare или вы беспокоитесь о том, что различные параметры сортировки серверов приведут к проблемам?

Вы можете изменить параметры сортировки конечного сервера в соответствии с базовым сервером

Если это невозможно, тогда сопоставьте параметры сортировки баз данных на каждом сервере, и тогда единственной реальной проблемой, вероятно, будут создаваемые вами временные таблицы (они будут иметь параметры сопоставления по умолчанию, соответствующие серверу / TEMPDB). и до тех пор, пока вы явно создаете временную таблицу (т.е. не создаете ее с помощью SELECT * INTO #TEMP FROM MyTable) и явно назначаете сопоставление для любых столбцов varchar / text, у вас должно быть все в порядке *

0 голосов
/ 13 февраля 2009

Похоже, параметры сортировки для сервера разные.

Как вы переносите данные, выполняете ли вы восстановление базы данных на новой платформе?

В любом случае вам необходимо убедиться, что в вашей новой среде используется то же сопоставление, что и в вашей исходной среде.

Надеюсь, это имеет смысл, дайте мне знать, если вам нужна дополнительная помощь.

...