Как различные параметры сопоставления связаны и применяются в типе проекта SQL Server в Visual Studio 2010? - PullRequest
2 голосов
/ 11 ноября 2010
  1. На вкладке «Параметры проекта» на странице свойств проекта есть параметр под названием Сортировка для модели базы данных .

  2. В настройках проекта также есть опция (файл .sqlsettings), которая называется Сортировка базы данных .

  3. А затем на вкладке «Развертывание» на странице свойств проекта есть ссылка на файл конфигурации развертывания , в котором есть параметр под названием сопоставление сравнения развертывания .

Я в замешательстве, но, что более важно, даже если я установил эту последнюю опцию на Используйте параметры сортировки сервера , сценарий развертывания всегда содержит следующую инструкцию:

ALTER DATABASE [$(DatabaseName)] COLLATE Latin1_General_CI_AS;

Что приводит к следующей ошибке:

Ошибка ALTER DATABASE. По умолчанию сопоставление базы данных «База данных» нельзя установить на Latin1_General_CI_AS.

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

Можете ли вы объяснить, что делает каждый из этих параметров и как они взаимодействуют и / или перекрывают друг друга?

Ответы [ 2 ]

1 голос
/ 20 ноября 2012

Я полагаю, что COLLATE Latin1_General_CI_AS, который вы видите, исходит из параметров сортировки по умолчанию, указанной в настройках вашего проекта. Это может быть доступно через:

  • Свойства проекта> Настройки проекта> Редактировать файл свойств каталога

Это откроет Database.sqlsettings, и вы увидите, что первая запись - это сопоставление базы данных по умолчанию, которое ваш проект использует при создании сценариев.

Сравнение развертывания используется для сравнения моделей базы данных при развертывании проекта. Я думаю, что это работает, только если вы развертываете непосредственно в базе данных, а не если вы используете настройки по умолчанию для создания файла сценария .sql.

Как заметил Эдди, в файле Database.sqldeployment есть параметр, который, если не проверять, удаляет раздражающий спецификатор сопоставления из сценариев CREATE и ALTER.

1 голос
/ 21 октября 2011

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

В настройках базы данных Project => Properties => Database.sqldeployment есть ScriptDatabaseCollation, который, если его не отметить, исправил мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...