Поделиться через


Общие сведения о параметрах проекта базы данных

Параметры проекта базы данных служат для управления разными аспектами базы данных и конфигураций построения. Эти параметры можно разделить на следующие категории.

  • Параметры проекта

  • События построения

  • Ссылки

  • Построение

  • Развертывание

Параметры проекта, события построения и свойства развертывания хранятся в проекте базы данных и совместно используются посредством системы управления версиями.

Примечание

Пользовательские параметры хранятся в файле с расширением DBPROJ.USER.Параметры, специфические для проекта, хранятся в файле с расширением DBPROJ.

Параметры проекта

Параметры в следующей таблице применимы ко всем конфигурациям этого проекта базы данных.

Поле

Значение по умолчанию

Описание

Версия проекта

Версия SQL Server, заданная при создании проекта базы данных.

Определяет версию SQL Server, для которой предназначен этот проект базы данных.

Параметры сортировки для модели базы данных

Английский (США) (1033) - CI

Задает правила по умолчанию, в соответствии с которыми данные сортируются и сравниваются в базовой базе данных SQL Server Compact Edition, в которой хранится модель вашей базы данных. Для данного параметра необходимо задать значение, наиболее близкое к параметрам сортировки целевой базы данных. Вам может потребоваться различать регистры. Например, можно использовать параметры сортировки без учета регистра для модели и параметры сортировки с учетом регистра для базы данных. Можно переопределить сортировку по умолчанию в определении объекта.

ПримечаниеПримечание
Сортировка по умолчанию одинакова для всех платформ.Значение по умолчанию не меняется в зависимости от текущего языкового стандарта.Необходимо задать сортировку по умолчанию вручную, чтобы она соответствовала языковому стандарту.

Схема по умолчанию

dbo

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

Включить имя схемы в имя файла

Да

Определяет, включается ли схема в имена файлов как префикс (например, dbo.Products.table.sql). Если этот флажок не установлен, имена файлов для объектов имеют вид имя_объекта.ObjectType.sql

Файл свойств каталога

Properties\CatalogProperties.catalogproperties

Содержит подробные параметры свойств для целевой базы данных. Все свойства соответствуют свойствам базы данных SQL Server. Дополнительные сведения см. на веб-сайте Майкрософт в разделе: Свойства базы данных (страница "Параметры").

Параметры событий построения

Эти параметры можно использовать для задания командной строки, выполняемой перед началом операции построения, и командой строки, выполняемой по завершении операции построения.

Поле

Значение по умолчанию

Описание

Командная строка события перед построением

Отсутствует

Задает командную строку для выполнения перед построением проекта. Для изменения этой командой строки щелкните Изменить событие, наступающее перед построением.

Командная строка события "После построения"

Отсутствует

Задает командную строку для выполнения после построения проекта. Для изменения этой командой строки щелкните Изменить событие, наступающее после построения.

Выполнить событие, наступающее после построения

При удачном построении

Определяет, должна ли командная строка, выполняемая после построения, выполняться всегда, только при успешном построении или только в случае, когда построение обновило выходные данные проекта (скрипт построения).

Дополнительные сведения см. в разделах Практическое руководство. Задание пользовательских действий, выполняемых перед построением и после построения и Диалоговые окна "Командная строка события "Перед построением" и "Командная строка события "После построения" (проекты баз данных).

Ссылки

Эту страницу можно использовать для определения переменных базы данных, связанных с межбазовой ссылкой. В дополнение можно задать значения этих переменных. Дополнительные сведения см. в разделе Использование ссылок в проектах баз данных.

Параметры построения

Эти параметры можно использовать для воздействия на скрипт построения и целевую базу данных. Данные параметры специфичны для заданной конфигурации и платформы и обычно у каждого пользователя свои.

Поле

Значение по умолчанию

Описание

Выходной путь построения

. \sql\

Указывает, где будет генерироваться скрипт построения при построении или развертывании проекта базы данных. Если задать относительный путь, то он должен быть задан относительно пути проекта базы данных. Если путь не существует, он создается.

Имя файла выходных данных построения

имяПроектаБазыДанных.sql

Определяет имя, которое требуется присвоить скрипту, генерируемому при построении проекта базы данных. Если установлен флажок Автоматически создавать имя файла выходных данных построения, заданное в этом поле значение автоматически заменяется автоматически сгенерированным именем файла.

Обрабатывать предупреждения как ошибки

Нет

Определяет, должны ли предупреждения вызывать отмену построения или развертывания. Если этот флажок снят, предупреждения выдаются, но построение и развертывание продолжаются.

Этот параметр зависит от проекта, а не от пользователя, и хранится в файле с расширением DBPROJ.

Отключить предупреждения

Отсутствует

Задает список номеров подавляемых предупреждений, которые указаны через запятую или точку с запятой. Подавляемые предупреждения не выводятся в окне Список ошибок и не отражаются на успехе построения, даже если установлен флажок Обрабатывать предупреждения как ошибки.

ПримечаниеПримечание
Также можно подавлять определенный тип предупреждений для определенного файла, если не нужно подавлять этот тип для всего проекта базы данных.Дополнительные сведения см. в разделе Практическое руководство. Подавление одного или более типов предупреждений.

Развертывание

Эти параметры можно использовать для управления развертыванием проекта базы данных.

Поле

Значение по умолчанию

Описание

Настроить параметры развертывания для

Параметры моего проекта

Определяет, будут ли изменяться параметры развертывания для проекта, используемого совместно с другими разработчиками, или только для вашей изолированной среды разработки.

Действие развертывания

Создание скрипта развертывания (SQL) и развертывание в базе данных

Определяет, развертывается ли созданный SQL-скрипт на целевом сервере или скрипт создается, но не развертывается.

Имя скрипта развертывания

имя_проекта.sql

Задает имя, которое используется для скрипта развертывания.

Конечное подключение

Пусто

Определяет информацию подключения для сервера базы данных, для которого предназначена выбранная конфигурация построения.

Имя конечной базы данных

имяПроектаБазыДанных

Определяет имя базы данных, создаваемой или обновляемой с использованием подключения, заданного в поле "Целевое подключение".

Файл конфигурации развертывания

Файл конфигурации развертывания содержит подробные сведения для каждого конкретного целевого объекта развертывания, как описано в следующей таблице.

Поле

Значение по умолчанию

Описание

Параметры сравнительной сортировки для развертывания

Использовать параметры сортировки моего проекта.

Указывает, какие параметры сортировки использовать при сравнении исходной и целевой моделей в процессе развертывания. Если щелкнуть Использовать параметры сортировки моего проекта, будут использоваться параметры сортировки исходного проекта. Если щелкнуть Использовать параметры сортировки сервера, будут использоваться параметры сортировки целевого проекта.

Развертывать свойства базы данных

Да

Определяет, развертываются ли параметры CatalogProperties.catalogproperties при развертывании проекта базы данных.

Всегда воссоздавать базу данных

Нет

Определяет, должна ли база данных удаляться и создаваться заново вместо выполнения инкрементального развертывания. Можно установить этот флажок, например, если требуется выполнить модульные тесты базы данных для чистого развертывания базы данных. Если этот флажок снят, существующая база данных будет обновлена, а не удалена и создана заново.

Блокировать добавочное развертывание при возможности потери данных

Да

Определяет, остановится ли развертывание, если обновление вызовет потерю данных. Если этот флажок установлен, изменения, приводящие к потере данных, вызовут остановку развертывания с ошибкой, предотвращая потерю данных. Например, развертывание будет остановлено, если столбец типа varchar(50) будет изменен на varchar(30).

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

Выполнить скрипт развертывания в однопользовательском режиме

Нет

Определяет, должна ли база данных перед развертыванием быть переведена в однопользовательский режим. Если развертывание выполняется на общем сервере баз данных, следует перевести базу данных в однопользовательский режим при развертывании изменений базы данных. Этот шаг не позволит другим пользователям вносить изменения, в то время как вы развертываете проект. Этот параметр недоступен, если включен полнотекстовый поиск на вкладке Параметры проекта свойств проекта базы данных.

Важное примечаниеВажно
Когда база данных находится в однопользовательском режиме, все остальные имеющиеся подключения к базе данных разрываются, как только начинается развертывание изменений в базе данных.Задается предложение ROLLBACK IMMEDIATE, чтобы ожидающие транзакции немедленно завершались при переводе базы данных в однопользовательский режим.

Создать резервную копию базы данных перед развертыванием

Нет

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

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

Создавать инструкции DROP для объектов, находящихся в конечной базе данных, но вне проекта базы данных

Нет

Определяет, следует ли в рамках скрипта развертывания удалять объекты целевой базы данных, отсутствующие в проекте базы данных. Вы можете исключить некоторые файлы проекта, чтобы временно удалить их из скрипта построения. Однако вам может потребоваться оставить существующие версии этих объектов в целевой базе данных. Данный флажок не действует, когда установлен флажок Всегда воссоздавать базу данных, поскольку база данных будет удалена.

Не использовать инструкции ALTER ASSEMBLY для обновления типов CLR

Нет

Указывает, используются ли инструкции ALTER ASSEMBLY для обновления типов среды CLR или должен ли объект, создающий экземпляр типа CLR, вместо этого удаляться и создаваться заново при развертывании изменений.

В следующей таблице описываются расширенные параметры развертывания.

Поле

Значение по умолчанию

Описание

AbortOnFirstError

True

Определяет, должно ли развертывание отменяться при возникновении первой ошибки.

BuildtimeContributorsMustExist

True

Определяет, должны ли участники развертывания (зарегистрированные в момент построения проекта базы данных) быть зарегистрированными на момент развертывания проекта.

CheckNewConstraints

True

Когда ограничения создаются впервые или повторно, определяет, будут ли они созданы с параметром NOCHECK, включенным по умолчанию. В конце скрипта развертывания будет добавлен блок инструкций, проверяющий все ограничения как один набор. Задав значение True для этого свойства, можно развернуть схему в ходе процесса развертывания без ошибок данных (вследствие ограничения проверки или внешнего ключа), перенося проверку данных в конец скрипта развертывания.

CommentOutSetVarDeclarations

False

Определяет, должно ли объявление переменных SetVar быть закомментированным в создаваемом скрипте развертывания. Это может потребоваться, если вы планируете задать значения в командной строке при развертывании с помощью такого инструмента, как, например, SQLCMD.EXE.

DisableAndReenableDdlTriggers

True

Определяет, отключены ли триггеры языка описания данных (DDL) в начале процесса развертывания и включены снова в конце процесса развертывания.

DropConstraintsNotInSource

True

Определяет, будут ли в целевой базе данных отброшены ограничения, которых нет в проекте базы данных, при развертывании обновлений в базе данных.

DropIndexesNotInSource

True

Определяет, будут ли в целевой базе данных отброшены индексы, которых нет в проекте базы данных, при развертывании обновлений в базе данных.

EnforceMinimalDependencies

False

Определяет, будут ли анализироваться и интерпретироваться тела процедур, скалярных функций и функций с табличным значением. Если включить этот параметр, зависимости в телах не обнаруживаются, но изменения в определении объекта обнаруживаются. Задав значение True для этого параметра, можно повысить производительность, но пропущенные зависимости могут вызвать проблемы при развертывании.

GenerateDeployStateChecks

True

Определяет, создаются ли инструкции в скрипте развертывания для проверки, соответствуют ли имя базы данных и имя сервера именам, заданным в проекте базы данных.

IgnoreAnsiNulls

False

Определяет, будут ли игнорироваться различия в параметре пустых значений ANSI, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreAuthorizer

False

Определяет, будут ли игнорироваться различия в механизме авторизации, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreColumnCollation

False

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

IgnoreComments

False

Определяет, будут ли игнорироваться различия в комментариях, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreCryptographicProviderFilePath

False

Определяет, будут ли игнорироваться различия пути к файлу для поставщика служб шифрования, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreDdlTriggerOrder

False

Определяет, будут различия в порядке триггеров языка DDL игнорироваться или обновляться при развертывании обновлений в базе данных или на сервере.

IgnoreDdlTriggerState

False

Определяет, будут ли игнорироваться различия состояния триггеров (включены или отключены) языка описания данных (DDL), или они будут обновляться при развертывании обновлений в базе данных.

IgnoreDefaultSchema

False

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

IgnoreDmlTriggerOrder

False

Определяет, будут ли игнорироваться различия в порядке триггеров языка обработки данных (DML), или они будут обновляться при развертывании обновлений в базе данных.

IgnoreDmlTriggerState

False

Определяет, будут ли игнорироваться различия состояния триггеров (включены или отключены) языка обработки данных (DML), или они будут обновляться при развертывании обновлений в базе данных.

IgnoreExtendedProperties

False

Определяет, будут ли игнорироваться различия в расширенных свойствах, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreFilegroupPlacement

True

Определяет, будут ли игнорироваться различия размещения объектов в файловых группах, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreFillFactor

True

Определяет, будут ли игнорироваться различия коэффициента заполнения для хранилища индексов, или будет создано предупреждение при развертывании обновлений в базе данных.

IgnoreIdentitySeed

False

Определяет, будут ли игнорироваться различия начального значения для столбца идентификаторов, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreIncrement

False

Определяет, будут ли игнорироваться различия приращения для столбца идентификаторов, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreIndexOptions

False

Определяет, будут ли игнорироваться различия в параметрах индекса, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreIndexPadding

True

Определяет, будут ли игнорироваться различия заполнения индекса, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreKeywordCasing

True

Определяет, будут ли игнорироваться различия в регистре ключевых слов, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreLockHintsOnIndexes

False

Определяет, будут ли игнорироваться различия в подсказках блокировок для индексов, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreLoginSids

False

Определяет, будут ли игнорироваться различия идентификаторов безопасности, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreNotForReplication

False

Определяет, будут различия в параметре "НЕ ДЛЯ РЕПЛИКАЦИИ" игнорироваться или обновляться при развертывании обновлений в базе данных.

IgnoreObjectPlacementOnPartitionScheme

True

Определяет, будут ли игнорироваться различия в сопоставлении разделов для секционированной таблицы или индекса с файловыми группами, или они будут обновляться при развертывании обновлений в базе данных.

IgnorePartitionSchemes

False

Определяет, будут различия в схемах секционирования и функциях игнорироваться или обновляться при развертывании обновлений в базе данных.

IgnorePermissions

False

Определяет, будут ли игнорироваться различия в разрешениях, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreQuotedIdentifiers

False

Определяет, будут ли игнорироваться различия в параметре нестандартных идентификаторов, или они будут обновляться при развертывании изменений в базе данных.

IgnoreRoleMembership

False

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

IgnoreRouteLifetime

True

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

IgnoreSemicolonBetweenStatements

True

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

IgnoreStatisticsSample

True

Определяет, будут ли игнорироваться различия в примерах, использованных для CREATE STATISTICS, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreTableOptions

False

Определяет, будут ли игнорироваться различия в параметрах таблицы, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreUserSettingsObjects

False

Определяет, будут ли игнорироваться различия в объектах пользовательских параметров, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreWhitespace

True

Определяет, будут ли игнорироваться различия в пробелах, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreWithNocheckOnCheckContraints

False

Определяет, будут ли игнорироваться различия в значении предложения WITH NOCHECK для ограничений проверки, или они будут обновляться при развертывании обновлений в базе данных.

IgnoreWithNocheckOnForeignKeys

False

Определяет, будут ли игнорироваться различия в значении предложения WITH NOCHECK для внешних ключей, или они будут обновляться при развертывании обновлений в базе данных.

IncludeTransactionalScripts

False

Определяет, должны ли при возможности использоваться операторы транзакции, когда выполняется развертывание в базе данных.

ScriptDatabaseCollation

True

Определяет, будут ли игнорироваться различия в параметрах сортировки базы данных, или они будут обновляться при развертывании обновлений в базе данных.

TreatVerificationErrorsAsWarnings

False

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

UnmodifiableObjectWarnings

True

Определяет, будут ли создаваться предупреждения при обнаружении различий в объектах, которые нельзя изменить, например, если различается размер или путь к файлу.

VerifyDeployment

True

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

См. также

Задачи

Практическое руководство. Настройка параметров построения для проектов баз данных и серверов

Практическое руководство. Настройка параметров развертывания для проектов баз данных и серверов

Практическое руководство. Построение проекта базы данных для создания файла скомпилированной схемы (.dbschema)

Практическое руководство. Развертывание изменений в новой или существующей базе данных

Пошаговое руководство. Создание и развертывание новой базы данных с управлением версиями

Пошаговое руководство. Развертывание изменений в существующей базе данных, находящейся под контролем системы управления версиями

Практическое руководство. Подавление одного или более типов предупреждений

Практическое руководство. Определение переменных среды для проектов баз данных

Основные понятия

Общие сведения о построении и развертывании базы данных