2009-02-13 3 views
4

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

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

базы SQL сервер SQL_Latin1_General_CP1_CI_AS и сервер назначения Latin1_General_CI_AS

ответ

5

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

+0

, но это просто «игнорирует» сопоставление как что-то для сравнения. Не генерирует код, который «игнорирует» сортировку для синхронизации. –

0

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

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

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

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

0

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

Вы можете изменить параметры сортировки сервера назначения, чтобы соответствовать базовой серверу

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

0

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

0

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

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

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

Я боюсь, что для этого не существует SQL Compare «magic bullet».

Смежные вопросы