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


Параметры публикации, свойства и переменные SQLCMD программы SqlPackage

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

Примечание.

Хотя Microsoft Entra ID — это новое название для Azure Active Directory (Azure AD), чтобы избежать нарушения существующих сред, Azure AD все еще используется в некоторых жестко закодированных элементах, таких как поля пользовательского интерфейса, поставщики подключений, коды ошибок и командлеты. В этой статье два имени являются взаимозаменяемыми.

Синтаксис для командной строки

SqlPackage инициирует действия, указанные с помощью параметров, свойств и переменных SQLCMD, указанных в командной строке.

SqlPackage /Action:Publish {parameters} {properties} {sqlcmd variables}

Примечание.

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

Примеры

# example publish from Azure SQL Database using SQL authentication and a connection string
SqlPackage /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Persist Security Info=False;User ID=sqladmin;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example publish using short form parameter names, skips schema validation
SqlPackage /a:Publish /tsn:"{yourserver}.database.windows.net,1433" /tdn:"AdventureWorksLT" /tu:"sqladmin" \
    /tp:"{your_password}" /sf:"C:\AdventureWorksLT.dacpac" /p:VerifyDeployment=False

# example publish using Microsoft Entra managed identity
SqlPackage /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Managed Identity;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example publish connecting using Microsoft Entra username and password
SqlPackage /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;User ID={yourusername};Password={yourpassword}"

# example publish connecting using Microsoft Entra universal authentication
SqlPackage /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" /UniversalAuthentication:True \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example publish with 2 SQLCMD variables
# as seen in a post deployment script for user passwords
# https://github.com/Azure-Samples/app-sql-devops-demo-project/blob/main/sql/wwi-dw-ssdt/PostDeploymentScripts/AddUsers.sql
SqlPackage /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Persist Security Info=False;User ID=sqladmin;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" \
    /v:ETLUserPassword="asecurestringaddedhere" /v:AppUserPassword="asecurestringaddedhere"
# example publish connecting using an access token associated with a service principal
$Account = Connect-AzAccount -ServicePrincipal -Tenant $Tenant -Credential $Credential
$AccessToken_Object = (Get-AzAccessToken -Account $Account -Resource "https://database.windows.net/")
$AccessToken = $AccessToken_Object.Token

SqlPackage /at:$AccessToken /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# OR
SqlPackage /at:$($AccessToken_Object.Token) /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Параметры действия публикации

Параметр Краткая форма значение Описание
/AccessToken: /в: {строка} Указывает токен доступа для аутентификации, основанной на токенах, который используется при подключении к целевой базе данных.
/Действие: /a: Публикация Указывает действие, подлежащее выполнению.
/AzureCloudConfig: /acc: {строка} Указывает пользовательские конечные точки для подключения к идентификатору Microsoft Entra в формате: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}".
/AzureKeyVaultAuthMethod: /akv: {Interactive|ClientIdSecret} Указывает метод проверки подлинности, используемый для доступа к Azure KeyVault, если операция публикации включает изменения в зашифрованную таблицу или столбец.
/ClientId: /cid: {строка} Указывает идентификатор клиента, который будет использоваться при проверке подлинности в Azure Key Vault при необходимости.
/DeployReportPath: /drp: {строка} Указывает необязательный путь для вывода XML-файла отчета о развертывании.
/DeployScriptPath: /dsp: {строка} Указывает необязательный путь для вывода скрипта развертывания. Если для развертываний Azure существуют команды Transact-SQL для создания или изменения базы данных master, скрипт будет записан в тот же путь, но с "Filename_Master.sql" в качестве имени выходного файла.
/Диагностика: /d: {Истина|Ложь} Указывает, следует ли выводить сведения из журнала диагностики в консоль. Значение по умолчанию — False.
/DiagnosticsFile: /df: {строка} Указывает файл, в котором следует вести журнал диагностики.
/DiagnosticsLevel: /dl {Нет|Выкл. |Критические|Ошибка|Предупреждение|Сведения|Подробные сведения} Указывает уровни отфильтрованных сообщений трассировки в файле диагностики
/ФайлПакетаДиагностики: /dpf {строка} Указывает файл для хранения пакета диагностики.
/MaxParallelism: /mp: {целое_число} Задает степень параллелизма для параллельных операций с базой данных. Значение по умолчанию — 8.
/ModelFilePath: /mfp: {строка} Указывает путь к файлу для замены model.xml в исходном файле. Использование этого параметра может привести к сбою развертывания и (или) непредвиденной потере данных. Этот параметр предназначен только для использования при устранении неполадок с публикацией, импортом или созданием скриптов.
/OverwriteFiles: /из: {Истина|Ложь} Указывает, должен ли SqlPackage перезаписать существующие файлы. Указание false приводит к прерыванию действия SqlPackage, если обнаружен существующий файл. Значение по умолчанию — True.
/Profile: /pr: {строка} Указывает путь к файлу приложения уровня данных профиля публикации. Профиль определяет коллекцию свойств и переменных, которые должны использоваться при формировании выходных данных.
/Свойства: /p: {имя_свойства}={значение} Указывает пару "имя — значение" для связанного с действием свойства; {имя_свойства}={значение}.
/Тишина: /q: {Истина|Ложь} Указывает, происходит ли подавление подробного отзыва. Значение по умолчанию — False.
/ReferencePaths: /rp: {имя_свойства}={значение} Указывает дополнительные каталоги для поиска ссылок на .dacpac.
/Secret: /secr: {строка} Указывает секрет клиента, который будет использоваться при проверке подлинности в Azure Key Vault при необходимости.
/SourceFile: /sf: {строка} Указывает исходный файл, который должен использоваться в качестве источника действия вместо базы данных из локального хранилища. Если используется этот параметр, все остальные параметры источника будут недействительны.
/SourceConnectionString: /Скс: {строка} Указывает допустимую строку подключения SQL Server/Azure к исходной базе данных. Если этот параметр указан, ему будет отдаваться предпочтение перед всеми остальными параметрами источника.
/SourceDatabaseName: /sdn: {строка} Определяет имя базы данных-источника.
/SourceEncryptConnection: в сек: {Необязательный|Обязательный|Строгий|Истина|Ложь} Указывает, следует ли использовать шифрование SQL для соединения с базой данных-источником. Значение по умолчанию — True.
/SourceHostNameInCertificate: /shnic: {строка} Указывает значение, используемое для проверки исходного TLS/SSL-сертификата SQL Server, когда уровень обмена данными шифруется с помощью TLS.
/SourcePassword: /sp: {строка} В сценариях с проверкой подлинности SQL Server — определяет пароль для доступа к базе данных-источнику.
/SourceServerName: /ssn: {строка} Определяет имя сервера, где размещается база данных-источник.
/SourceTimeout: /старт: {целое_число} Задает время ожидания подключения к базе данных-источнику (в секундах).
/SourceTrustServerCertificate: /stsc: {Истинно|Ложно} Определяет, используется ли протокол TLS для шифрования подключения к базе данных-источнику без прохода по цепочке сертификатов для проверки доверия. По умолчанию используется значение False.
/SourceUser: /Су: {строка} В сценариях с проверкой подлинности SQL Server — определяет пользователя SQL Server для доступа к базе данных-источнику.
/TargetConnectionString: /tcs: {строка} Указывает допустимую строка подключения SQL Server или Azure в целевую базу данных. Если этот параметр указан, ему будет отдаваться предпочтение перед всеми остальными параметрами целевого объекта.
/TargetDatabaseName: /tdn: {строка} Задает переопределение для имени базы данных, которая является целью действия SqlPackage.
/TargetEncryptConnection: /tec: {Необязательный|Обязательный|Строгий|Истина|Ложь} Определяет, должно ли использоваться шифрование SQL для подключения к целевой базе данных. Значение по умолчанию — True.
/TargetHostNameInCertificate: Этнический: {строка} Указывает значение, используемое для проверки целевого TLS/SSL-сертификата SQL Server при шифровании уровня связи с помощью TLS.
/TargetPassword: /tp: {строка} В сценариях с проверкой подлинности SQL Server — определяет пароль для доступа к целевой базе данных.
/TargetServerName: /tsn: {строка} Определяет имя сервера, где размещается целевая база данных.
/TargetTimeout: /tt: {int} Задает время ожидания подключения к целевой базе данных (в секундах). Для идентификатора Microsoft Entra рекомендуется, чтобы это значение было больше или равно 30 секундам.
/TargetTrustServerCertificate: /ttsc: {Истина|Ложь} Определяет, используется ли протокол TLS для шифрования подключения к целевой базе данных без прохода по цепочке сертификатов для проверки доверия. По умолчанию используется значение False.
/TargetUser: /Ту: {строка} В сценариях с проверкой подлинности SQL Server — определяет пользователя SQL Server для доступа к целевой базе данных.
/TenantId: /tid: {строка} Представляет идентификатор клиента Microsoft Entra или доменное имя. Этот параметр необходим для поддержки гостевых или импортированных пользователей Microsoft Entra, а также учетных записей Майкрософт, таких как outlook.com, hotmail.com или live.com. Если этот параметр опущен, будет использоваться идентификатор клиента по умолчанию для идентификатора Microsoft Entra, предполагая, что прошедший проверку подлинности пользователь является собственным пользователем для этого клиента. Однако в этом случае любые гостевые или импортированные пользователи и /или учетные записи Майкрософт, размещенные в этом идентификаторе Microsoft Entra, не поддерживаются, и операция завершится ошибкой.
Дополнительные сведения см. в статье Универсальная проверка подлинности с Базой данных SQL и Azure Synapse Analytics (поддержка SSMS для MFA).
/ThreadMaxStackSize: /tmss: {целое_число} Указывает максимальный размер в мегабайтах для потока, выполняемого действием SqlPackage. Этот параметр следует использовать только при обнаружении исключений переполнения стека, возникающих при анализе очень больших инструкций Transact-SQL.
/UniversalAuthentication: /ua: {Истина|Ложь} Указывает, следует ли использовать универсальную проверку подлинности. Если задано значение true, протокол интерактивной проверки подлинности активируется с поддержкой MFA. Этот параметр также можно использовать для проверки подлинности Microsoft Entra без MFA, используя интерактивный протокол, требующий от пользователя ввод имени пользователя и пароля или встроенной проверки подлинности (учетные данные Windows). Если для параметра /UniversalAuthentication задано значение True, аутентификация Microsoft Entra не может быть указана в SourceConnectionString (/scs). Если в параметре /UniversalAuthentication указано значение False, необходимо задать проверку подлинности Microsoft Entra в SourceConnectionString (/scs).
Дополнительные сведения об универсальной проверке подлинности Active Directory см. в статье Универсальная проверка подлинности с Базой данных SQL и Azure Synapse Analytics (поддержка SSMS для MFA).
/Переменные: /v: {имя_свойства}={значение} Указывает пару "имя-значение" для переменной действия; {имя_переменной}={значение}. DACPAC-файл содержит список действительных переменных SQLCMD. Если значения каких-либо переменных не будут указаны, возникнет ошибка.

Свойства, относящиеся к действию публикации

Свойство значение Описание
/p: АргументыДополнительногоРазвертыванияУчастника=(СТРОКА) Задает дополнительные аргументы участника развертывания для участников развертывания. Это свойство должно быть списком значений, разделенных точкой с запятой.
/p: AdditionalDeploymentContributorPaths=(STRING) Указывает пути для загрузки дополнительных участников развертывания. Это свойство должно быть списком значений, разделенных точкой с запятой.
/p: ДополнительныеВкладчикиВРазвертывание=(STRING) Указывает дополнительных участников развертывания, которые должны выполняться при развертывании пакета DACPAC. Это свойство должно быть списком имен или идентификаторов участников сборки, полностью соответствующих требованиям, разделённых точками с запятой.
/p: AllowDropBlockingAssemblies=(BOOLEAN 'False') Это свойство используется развертыванием SqlClr для удаления любых блокирующих сборок в рамках плана развертывания. По умолчанию, любые блокирующие или ссылающиеся сборки будут препятствовать обновлению сборки, если ссылающаяся сборка должна быть удалена.
/p: AllowExternalLanguagePaths=(BOOLEAN 'Ложь') Разрешает использовать пути к файлам (при их доступности) для создания инструкций внешнего языка.
/p: AllowExternalLibraryPaths=(BOOLEAN 'Ложь') Разрешает использовать пути к файлам (при их доступности) для создания инструкций внешней библиотеки.
/p: РазрешитьНесовместимуюПлатформу=(BOOLEAN 'False') Указывает, пытаться ли выполнить это действие, несмотря на несовместимость платформ SQL Server.
/p: РазрешитьПересозданиеТаблицы=(ЛОГИЧЕСКИЙ 'Истина') Указывает, следует ли разрешать восстановление таблиц во время развертывания при необходимости для изменения схемы. Восстановление таблиц перестраивает таблицу при сохранении данных, но может оказать значительное влияние на производительность.
/p: РазрешитьНебезопасноеПеремещениеДанныхНаУровнеСтрок=(ЛОГИЧЕСКИЙ 'False') Не блокируйте перемещение данных в таблице с безопасностью на уровне строк, если это свойство установлено на значение true. По умолчанию — false.
/p: AzureSharedAccessSignatureToken=(STRING) Токен подписи общего доступа Azure (SAS). См. SqlPackage для Azure Synapse Analytics и SqlPackage с данными в файлах Parquet.
/p: AzureStorageBlobEndpoint=(STRING) Для конечной точки хранилища BLOB-объектов Azure см. SqlPackage для Azure Synapse Analytics и SqlPackage с данными в файлах Parquet.
/p: AzureStorageContainer=(STRING) Контейнер хранилища Blob-объектов Azure, см. раздел SqlPackage для Azure Synapse Analytics и SqlPackage с данными в файлах Parquet.
/p: AzureStorageKey=(STRING) Ключ учетной записи хранения Azure см. SqlPackage для Azure Synapse Analytics и SqlPackage с данными в файлах Parquet.
/p: AzureStorageRootPath=(STRING) Корневой путь хранилища в контейнере. Без этого свойства путь по умолчанию имеет значение servername/databasename/timestamp/. См . статью SqlPackage для Azure Synapse Analytics и SqlPackage с данными в файлах Parquet.
/p: BackupDatabaseBeforeChanges=(BOOLEAN 'False') Создает резервную копию базы данных перед развертыванием любых изменений. Это свойство неприменимо к Базе данных Azure SQL.
/p: БлокировкаПриВозможнойПотереДанных=(ЛОГИЧЕСКИЙ 'Истина') Указывает, что операция будет прервана на этапе проверки схемы, если изменения схемы могут привести в итоге к потере данных, в том числе из-за снижения точности данных или изменения типа данных, требующего операции приведения. Значение по умолчанию (True) приводит к завершению операции независимо от того, содержит ли данные целевая база данных. Выполнение со значением False для BlockOnPossibleDataLoss также может завершиться ошибкой во время выполнения плана развертывания, если в целевом объекте есть данные, которые невозможно преобразовать в новый тип столбца.
/p: BlockWhenDriftDetected=(Булево значение 'Истина') Указывает, следует ли блокировать обновление базы данных, схема которой больше не соответствует регистрации или регистрация которой удалена.
/p: CommandTimeout=(INT32 '60') Задает время ожидания команды в секундах при выполнении запросов к SQL Server.
/p: CommentOutSetVarDeclarations=(BOOLEAN 'False') Указывает, будет ли объявление переменных SETVAR закомментировано в созданном скрипте публикации. Эту возможность можно выбрать, если планируется задавать значения в командной строке во время публикации с помощью такого средства, как SQLCMD.EXE.
/p: СравнениеИспользуяЦелевоеСравнение=(ЛОГИЧЕСКИЙ 'Ложь') Этот параметр указывает, как обрабатываются параметры сортировки базы данных во время развертывания. По умолчанию параметры сортировки целевой базы данных обновляются, если они не совпадают с параметрами сортировки, указанными источником. Если задан этот параметр, следует использовать сортировку целевой базы данных (или сервера).
/p: CreateNewDatabase=(BOOLEAN 'False') Указывает, обновляется ли целевая база данных, или ее нужно удалить и создать заново при публикации базы данных.
/p: DatabaseEdition=({ Базовый | Стандартный | Премиум | Хранилище данных | Общего назначения | Критически важный для бизнеса | Гипермасштабируемый | По умолчанию } 'По умолчанию') Определяет издание базы данных Azure SQL. См. Уровни служб Базы данных SQL Azure.
/p: DatabaseLockTimeout=(INT32 '60') Устанавливает время ожидания блокировки базы данных в секундах при выполнении запросов к SQLServer. Для ожидания без ограничений используйте значение "-1".
/p: DatabaseMaximumSize=(INT32 '0') Определяет максимальный размер в ГБ для базы данных SQL Azure.
/p: DatabaseServiceObjective=(STRING) Определяет уровень производительности для базы данных SQL Azure, например "P0" или "S1".
/p: DeployDatabaseInSingleUserMode=(BOOLEAN 'False') Если указано значение true, то перед развертыванием база данных переводится в однопользовательский режим.
/p: ОтключитьИВключитьТриггерыDdl=(BOOLEAN 'True') Указывает, следует ли отключить триггеры языка описания данных DDL в начале процесса публикации и включить их в конце.
/p: ОтключитьИндексыДляФазыДанных=(BOOLEAN 'Истина') Отключение индексов перед импортом данных в SQL Server.
/p: DisableParallelismForEnablingIndexes=(ЛОГИЧЕСКИЙ 'Ложь') Не использовать параллелизм при перестроении индексов во время импорта данных в SQL Server.
/p: DoNotAlterChangeDataCaptureObjects=(BOOLEAN 'Истина') Если указано значение true, объекты отслеживания измененных данных не меняются.
/p: DoNotAlterReplicatedObjects=(BOOLEAN 'Истина') Указывает, определяются ли во время проверки реплицируемые объекты.
/p: DoNotDropDatabaseWorkloadGroups=(ЛОГИЧЕСКИЙ «False») При значении false, рабочие группы базы данных целевой базы, которые не определены в исходном источнике, будут удалены в процессе развертывания.
/p: DoNotDropObjectType=(STRING) Тип объекта, который нельзя удалять, если элемент DropObjectsNotInSource имеет значение true. Допустимые имена типов объектов: Агрегаты, Роли приложений, Сборки, Файлы сборки, Асимметричные ключи, Приоритеты брокера, Сертификаты, Ключи шифрования столбцов, Мастер-ключи столбцов, Контракты, Параметры базы данных, Роли базы данных, Триггеры базы данных, Определения, Расширенные свойства, Внешние источники данных, Внешние форматы файлов, Внешние таблицы, Группы файлов, Файлы, Таблицы файлов, Каталоги полнотекстового поиска, Списки стоп-слов полнотекстового поиска, Типы сообщений, Функции разделения, Схемы разделения, Разрешения, Очереди, Удаленные привязки сервисов, Членство в ролях, Правила, Скалярные функции, Списки свойств поиска, Политики безопасности, Последовательности, Сервисы, Подписи, Хранимые процедуры, Симметричные ключи, Синонимы, Таблицы, Табличные функции, Пользовательские типы данных, Пользовательские типы таблиц, Клир-пользовательские типы данных, Пользователи, Представления, Коллекции схем XML, Аудиты, Учетные данные, Криптографические провайдеры, Спецификации аудита базы данных, Ключи шифрования базы данных, Учетные данные, применимые к базе данных, Конечные точки, Сообщения об ошибках, Уведомления о событиях, Сессии событий, Учетные данные для связанного сервера, Связанные серверы, Учетные записи, Мастер-ключи, Маршруты, Спецификации аудита сервера, Членство в ролях сервера, Роли сервера, Триггеры сервера, Внешние потоки, Внешние потоки заданий, Группы рабочей нагрузки базы данных, Классификаторы рабочей нагрузки, Внешние библиотеки, Внешние языки. Это свойство может быть указано несколько раз, чтобы указать несколько параметров.
/p: DoNotDropObjectTypes=(STRING) Список типов объектов (разделенных точками с запятой), которые не следует удалять, если параметр DropObjectsNotInSource имеет значение true. Допустимые имена типов объектов: Aggregates, ApplicationRoles, Assemblies, AssemblyFiles, AsymmetricKeys, BrokerPriorities, Certificates, ColumnEncryptionKeys, ColumnMasterKeys, Contracts, DatabaseOptions, DatabaseRoles, DatabaseTriggers, Defaults, ExtendedProperties, ExternalDataSources, ExternalFileFormats, ExternalTables, Filegroups, Files, FileTables, FullTextCatalogs, FullTextStoplists, MessageTypes, PartitionFunctions, PartitionSchemes, Permissions, Queues, RemoteServiceBindings, RoleMembership, Rules, ScalarValuedFunctions, SearchPropertyLists, SecurityPolicies, Sequences, Services, Signatures, StoredProcedures, SymmetricKeys, Synonyms, Tables, TableValuedFunctions, UserDefinedDataTypes, UserDefinedTableTypes, ClrUserDefinedTypes, Users, Views, XmlSchemaCollections, Audits, Credentials, CryptographicProviders, DatabaseAuditSpecifications, DatabaseEncryptionKeys, DatabaseScopedCredentials, Endpoints, ErrorMessages, EventNotifications, EventSessions, LinkedServerLogins, LinkedServers, Logins, MasterKeys, Routes, ServerAuditSpecifications, ServerRoleMembership, ServerRoles, ServerTriggers, ExternalStreams, ExternalStreamingJobs, DatabaseWorkloadGroups, WorkloadClassifiers, ExternalLibraries, ExternalLanguages.
/p: DoNotDropWorkloadClassifiers=(БУЛЕВОЕ 'False') При значении false классификаторы WorkloadClassifiers в целевой базе данных, не определенные в источнике, будут удалены в ходе развертывания.
/p: DoNotEvaluateSqlCmdVariables=(BOOLEAN 'True') Указывает, что переменные SQLCMD не должны заменяться значениями.
/p: DropConstraintsNotInSource=(ЛОГИЧЕСКИЙ 'Истина') Указывает, будут ли ограничения, которые не существуют в моментальном снимке базы данных (DACPAC), удалены из целевой базы данных при выполнении публикации.
/p: DropDmlTriggersNotInSource=(BOOLEAN 'True') Указывает, будут ли триггеры DML, которые отсутствуют в файле моментального снимка базы данных (.dacpac), удалены из целевой базы данных при выполнении публикации.
/p: DropExtendedPropertiesNotInSource=(BOOLEAN 'True') Указывает, будут ли расширенные свойства, которые отсутствуют в файле моментального снимка базы данных (.dacpac), удалены из целевой базы данных при публикации в базу данных.
/p: DropIndexesNotInSource=(BOOLEAN 'True') Указывает, должны ли отсутствующие в файле моментального снимка базы данных (.dacpac) индексы быть удалены из целевой базы данных при публикации.
/p: DropObjectsNotInSource=(BOOLEAN 'False') Указывает, следует ли удалять из целевой базы данных объекты, которых нет в файле моментального снимка базы данных (.dacpac), в процессе публикации в базу данных. Это значение имеет приоритет над элементом DropExtendedProperties.
/p: ОтменитьРазрешенияНеВСистеме=(БУЛЕВО 'Ложь') Указывает, будут ли права доступа, которые отсутствуют в файле моментального снимка базы данных (.dacpac), удалены из целевой базы данных при публикации обновлений.
/p: DropRoleMembersNotInSource=(BOOLEAN 'False') Указывает, будут ли участники ролей, которые не определены в файле моментального снимка базы данных (.dacpac), удалены из целевой базы данных при публикации обновлений в базу данных.
/p: DropStatisticsNotInSource=(БУЛЕВОЕ 'Истина') Указывает, будет ли статистика, которая отсутствует в файле моментального снимка базы данных (DACPAC), удалена из целевой базы данных при публикации в базе данных.
/p: EnclaveAttestationProtocol=(STRING) Определяет протокол аттестации, используемый в Always Encrypted на основе анклавов.
/p: EnclaveAttestationUrl=(STRING) Указывает URL-адрес аттестации анклава (конечная точка службы аттестации), используемый для Always Encrypted на основе анклавов.
/p: ExcludeObjectType=(STRING) Тип объекта, который должен игнорироваться во время развертывания. Допустимые имена типов объектов: Aggregates, ApplicationRoles, Assemblies, AssemblyFiles, AsymmetricKeys, BrokerPriorities, Certificates, ColumnEncryptionKeys, ColumnMasterKeys, Contracts, DatabaseOptions, DatabaseRoles, DatabaseTriggers, Defaults, ExtendedProperties, ExternalDataSources, ExternalFileFormats, ExternalTables, Filegroups, Files, FileTables, FullTextCatalogs, FullTextStoplists, MessageTypes, PartitionFunctions, PartitionSchemes, Permissions, Queues, RemoteServiceBindings, RoleMembership, Rules, ScalarValuedFunctions, SearchPropertyLists, SecurityPolicies, Sequences, Services, Signatures, StoredProcedures, SymmetricKeys, Synonyms, Tables, TableValuedFunctions, UserDefinedDataTypes, UserDefinedTableTypes, ClrUserDefinedTypes, Users, Views, XmlSchemaCollections, Audits, Credentials, CryptographicProviders, DatabaseAuditSpecifications, DatabaseEncryptionKeys, DatabaseScopedCredentials, Endpoints, ErrorMessages, EventNotifications, EventSessions, LinkedServerLogins, LinkedServers, Logins, MasterKeys, Routes, ServerAuditSpecifications, ServerRoleMembership, ServerRoles, ServerTriggers, ExternalStreams, ExternalStreamingJobs, DatabaseWorkloadGroups, WorkloadClassifiers, ExternalLibraries, ExternalLanguages. Это свойство может быть указано несколько раз, чтобы указать несколько параметров.
/p: ИсключитьТипыОбъектов=(STRING) Список типов объектов с запятой, которые следует игнорировать во время развертывания. Допустимые имена типов объектов: Aggregates, Роли приложений, Сборки, Файлы сборок, Асимметричные ключи, Приоритеты брокера, Сертификаты, Ключи шифрования столбцов, Главные ключи столбцов, Контракты, Параметры базы данных, Роли базы данных, Триггеры базы данных, Значения по умолчанию, Расширенные свойства, Внешние источники данных, Форматы внешних файлов, Внешние таблицы, Группы файлов, Файлы, Таблицы файлов, Полнотекстовые каталоги, Списки стоп-слов для полнотекстового поиска, Типы сообщений, Функции разбиения, Схемы разбиения, Разрешения, Очереди, Удаленные привязки услуг, Членство в ролях, Правила, Скалярные функции, Списки свойств поиска, Политики безопасности, Последовательности, Сервисы, Подписи, Хранимые процедуры, Симметричные ключи, Синонимы, Таблицы, Табличные функции, Пользовательские типы данных, Пользовательские типы таблиц, Пользовательские типы CLR, Пользователи, Представления, Коллекции схем XML, Аудиты, Учетные данные, Криптографические провайдеры, Спецификации аудита базы данных, Ключи шифрования базы данных, Учетные данные с областью использования на уровне базы данных, Конечные точки, Сообщения об ошибках, Уведомления о событиях, Сеансы событий, Логины связанного сервера, Связанные серверы, Логины, Главные ключи, Маршруты, Спецификации аудита сервера, Членство в ролевой группе сервера, Роли сервера, Триггеры сервера, Внешние потоки, Задания внешнего потока, Рабочие группы базы данных, Классификаторы нагрузки, Внешние библиотеки, Внешние языки.
/p: GenerateSmartDefaults=(BOOLEAN 'False') Автоматически определяет значение по умолчанию при обновлении таблицы, содержащей данные со столбцом, который не допускает значения NULL.
/p: HashObjectNamesInLogs=(BOOLEAN 'False') Определяет, следует ли заменять все имена объектов в журналах случайным хэш-значением.
/p: IgnoreAnsiNulls=(BOOLEAN 'True') Определяет, пропускаются или обновляются различия в параметре ANSI NULLS при публикации в базе данных.
/p: IgnoreAuthorizer=(BOOLEAN 'False') Определяет, следует ли игнорировать или обновлять различия авторизатора при публикации в базе данных.
/p: ИгнорироватьСопоставлениеКолонок=(ЛОГИЧЕСКОЕ 'False') Определяет, пропускаются или обновляются различия в параметрах сортировки столбцов при публикации в базе данных.
/p: IgnoreColumnOrder=(BOOLEAN 'False') Указывает, следует ли игнорировать или обновлять различия в порядке столбцов таблицы при публикации в базе данных.
/p: IgnoreComments=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в комментариях при публикации в базе данных.
/p: IgnoreCryptographicProviderFilePath=(BOOLEAN 'True') Определяет, следует ли игнорировать или обновлять различия в пути к файлам криптографического провайдера при публикации в базе данных.
/p: IgnoreDatabaseWorkloadGroups=(BOOLEAN 'Ложь') Указывает, следует ли исключать во время развертывания группы рабочей нагрузки, существующие в целевом объекте. Группы рабочей нагрузки базы данных не будут добавлены, изменены или удалены.
/p: IgnoreDdlTriggerOrder=(BOOLEAN 'False') Определяет, следует игнорировать или обновлять различия в порядке триггеров языка описания данных (DDL) при публикации в базе данных или на сервере.
/p: IgnoreDdlTriggerState=(BOOLEAN 'False') Определяет, должны ли быть проигнорированы или обновлены различия в включенном или выключенном состоянии триггеров DDL, при публикации в базе данных.
/p: IgnoreDefaultSchema=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в схеме по умолчанию при публикации в базе данных.
/p: IgnoreDmlTriggerOrder=(BOOLEAN 'False') Определяет, следует ли игнорировать или обновлять различия в порядке триггеров языка манипуляции данными (DML) при публикации в базу данных.
/p: IgnoreDmlTriggerState=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в состоянии (включен–выключен) триггеров DML при публикации в базе данных.
/p: ИгнорироватьРасширенныеСвойства=(BOOLEAN 'False') Определяет, следует ли игнорировать или обновлять различия в расширенных свойствах при публикации на базе данных.
/p: IgnoreFileAndLogFilePath=(BOOLEAN 'True') Определяет, следует ли игнорировать или обновлять различия в путях к файлам и файлам журнала при публикации в базу данных.
/p: IgnoreFilegroupPlacement=(BOOLEAN 'True') Определяет, пропускаются или обновляются различия в размещении объектов в файловых группах FILEGROUP при публикации в базе данных.
/p: IgnoreFileSize=(BOOLEAN 'True') Определяет, следует ли игнорировать различия в размерах файлов или выдать предупреждение при публикации в базе данных.
/p: IgnoreFillFactor=(BOOLEAN 'True') Определяет, создается ли предупреждение о различиях в коэффициенте заполнения для хранилища индексов при публикации в базе данных.
/p: IgnoreFullTextCatalogFilePath=(BOOLEAN 'True') Определяет, следует ли игнорировать различия в пути к файлам полнотекстового каталога или выдавать предупреждение при публикации в базе данных.
/p: IgnoreIdentitySeed=(BOOLEAN 'Ложь') Определяет, следует ли игнорировать или обновлять изменения в начальном значении для столбца идентификаторов, когда вы публикуете обновления в базе данных.
/p: IgnoreIncrement=(BOOLEAN 'Ложь') Определяет, игнорируются или обновляются различия в приращении для столбца идентичности при публикации в базе данных.
/p: IgnoreIndexOptions=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в параметрах индексов при публикации в базе данных.
/p: IgnoreIndexPadding=(BOOLEAN 'Истина') Определяет, игнорируются или обновляются различия в заполнении индексов при публикации в базу данных.
/p: IgnoreKeywordCasing=(BOOLEAN 'True') Определяет, пропускаются или обновляются различия в регистре ключевых слов при публикации в базе данных.
/p: IgnoreLockHintsOnIndexes=(BOOLEAN 'False') Указывает, следует ли игнорировать или обновлять различия в подсказках блокировки индексов при публикации в базе данных.
/p: IgnoreLoginSids=(BOOLEAN 'Истина') Указывает, следует ли игнорировать или обновлять различия в идентификаторе безопасности (SID) при публикации в базе данных.
/p: IgnoreNotForReplication=(BOOLEAN 'False') Определяет, пропускаются или обновляются параметры "не для репликации" при публикации в базе данных.
/p: IgnoreObjectPlacementOnPartitionScheme=(BOOLEAN 'True') Определяет, игнорируется или обновляется размещение объекта в схеме секционирования при размещении в базе данных.
/p: IgnorePartitionSchemes=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в функциях и схемах секционирования при публикации в базе данных.
/p: IgnorePermissions=(БУЛЕВО 'Ложь') Определяет, пропускаются или обновляются различия в разрешениях при публикации в базе данных.
/p: IgnoreQuotedIdentifiers=(ЛОГИЧЕСКИЙ 'Правда') Определяет, следует ли игнорировать или обновлять различия в параметрах кавычек идентификаторов при публикации в базу данных.
/p: IgnoreRoleMembership=(Логическое 'Ложь') Указывает, следует игнорировать или обновлять различия в членстве ролей логинов при публикации в базу данных.
/p: IgnoreRouteLifetime=(BOOLEAN 'Истина') Определяет, пропускаются или обновляются различия в продолжительности периода, в течение которого SQL Server хранит маршрут в таблице маршрутизации, при публикации в базе данных.
/p: ИгнорироватьТочкуСЗапятойМеждуОператорами=(BOOLEAN 'True') Определяет, будут ли различия в синтаксисе между инструкциями T-SQL игнорироваться или обновляться при публикации в базу данных.
/p: IgnoreSensitivityClassifications=(BOOLEAN 'Ложь') Указывает, следует ли игнорировать классификации конфиденциальности данных для столбцов при сравнении моделей схем. Это работает только для классификаций, добавленных с помощью синтаксиса ADD SENSITIVITY CLASSIFICATION, представленного в SQL 2019.
/p: IgnoreTableOptions=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в параметрах таблиц при публикации в базе данных.
/p: IgnoreTablePartitionOptions=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в параметрах секций таблиц при публикации в базе данных. Этот параметр применяется только к базам данных выделенного пула SQL Azure Synapse Analytics.
/p: ИгнорироватьНастройкиПользователя=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в объектах параметров пользователя при публикации в базе данных.
/p: ИгнорироватьПробелы=(BOOLEAN 'Истина') Определяет, игнорируются или обновляются различия в пробелах при публикации в базе данных.
/p: IgnoreWithNocheckOnCheckConstraints=(ЛОГИЧЕСКИЙ 'Ложь') Определяет, будут ли игнорироваться или обновляться изменения в значении предложения WITH NOCHECK для проверочных ограничений при публикации данных.
/p: ИгнорироватьБезПроверкиВнешнихКлючей=(BOOLEAN 'False') Определяет, будут ли игнорироваться или обновляться различия в значениях предложения WITH NOCHECK для внешних ключей при публикации в базе данных.
/p: IgnoreWorkloadClassifiers=(BOOLEAN 'False') Указывает, следует ли исключать во время развертывания классификаторы рабочей нагрузки, существующие в целевом объекте.
/p: ВключитьКомпозитныеОбъекты=(ЛОГИЧЕСКОЕ 'False') Позволяет включить все составные элементы с той же базой данных как часть единственной операции публикации.
/p: ВключитьТранзакционныеСкрипты=(ЛОГИЧЕСКИЙ 'False') Определяет, будут ли по возможности использоваться инструкции транзакций при публикации в базе данных.
/p: IsAlwaysEncryptedParameterizationEnabled=(BOOLEAN 'Ложь') Включает параметризацию переменных для столбцов Always Encrypted в скриптах, выполняемых до и после развертывания.
/p: LongRunningCommandTimeout=(INT32 '0') Позволяет задать время ожидания в секундах для команды, выполняющейся долгое время, при выполнении запросов для SQL Server. Для ожидания без ограничений используйте значение "0".
/p: ЗапретитьИзменениеОператоровДляИзмененияClrТипов=(BOOLEAN 'False') Указывает, что при публикации, если имеются различия, сборка всегда должна быть удалена и создана заново вместо выполнения инструкции ALTER ASSEMBLY.
/p: PerformIndexOperationsOnline=(BOOLEAN 'False') Указывает, следует ли выполнять операции индексов в сети во время развертывания.
/p: PopulateFilesOnFileGroups=(BOOLEAN 'Истина') Указывает, создается ли также новый файл при создании новой файловой группы в базе данных назначения.
/p: PreserveIdentityLastValues=(BOOLEAN 'False') Указывает, следует ли сохранять последние значения для столбцов идентификаторов во время развертывания.
/p: RebuildIndexesOfflineForDataPhase=(BOOLEAN 'False') Перестройка индексов в автономном режиме после импорта данных.
/p: RegisterDataTierApplication=(ЛОГИЧЕСКИЙ 'Ложь') Указывает, регистрируется ли схема на сервере базы данных.
/p: RestoreSequenceCurrentValue=(BOOLEAN 'Истина') Указывает, должно ли текущее значение объекта последовательности развертываться с помощью DACPAC-файла. Значение по умолчанию — True.
/p: RunDeploymentPlanExecutors=(ЛОГИЧЕСКИЙ 'False') Указывает, следует ли запускать участников DeploymentPlanExecutor при выполнении других операций.
/p: ScriptDatabaseCollation=(BOOLEAN 'False') Определяет, следует ли игнорировать или обновлять различия в сопоставлении базы данных, когда вы публикуете в базу данных.
/p: ScriptDatabaseCompatibility=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в уровне совместимости базы данных при публикации в базе данных.
/p: ScriptDatabaseOptions=(BOOLEAN 'Истина') Определяет, будут ли свойства целевой базы данных задаваться или обновляться в рамках действия публикации.
/p: ScriptDeployStateChecks=(BOOLEAN 'False') Определяет, создаются ли инструкции в скрипте публикации, чтобы проверить соответствие имен базы данных и сервера с именами, указанными в проекте базы данных.
/p: ScriptFileSize=(BOOLEAN 'False') Определяет, указывается ли размер при добавлении файла в файловую группу.
/p: ScriptNewConstraintValidation=(BOOLEAN 'True') В конце публикации все ограничения будут проверяться как один набор, избегая ошибок данных, вызванных ограничением проверки или внешнего ключа в середине публикации. Если этот параметр имеет значение False, ограничения публикуются без проверки соответствующих данных.
/p: ScriptRefreshModule=(BOOLEAN 'True') Включать инструкции обновления в конец скрипта публикации.
/p: Storage=({File|Memory}) Указывает, как сохраняются элементы при построении модели базы данных. Для обеспечения высокой производительности по умолчанию используется значение InMemory. Для больших баз данных, возможно, потребуется файловое хранилище, доступное только в версии SqlPackage для .NET Framework.
/p: TreatVerificationErrorsAsWarnings=(BOOLEAN 'False') Указывает, должны ли ошибки, обнаруженные во время проверки публикации, обрабатываться как предупреждения. Проверка выполняется применительно к сформированному плану развертывания перед его выполнением применительно к целевой базе данных. Проверка плана выявляет такие проблемы, как потеря объектов, существующих только в целевой базе данных (например, индексов), которые должны быть удалены в процессе внесения изменений. Кроме того, она выявляет ситуации, когда зависимости (например, таблицы или представления) существуют в результате наличия ссылок на составной проект, но отсутствуют в целевой базе данных. Это можно сделать, чтобы получить полный список всех проблем, вместо того чтобы действие публикации останавливалось при первой ошибке.
/p: ПредупрежденияОНеизменяемомОбъекте=(BOOLEAN 'True') Указывает, следует ли формировать предупреждения, если обнаружены различия в объектах, которые не могут быть изменены (например, если отличаются размеры или пути файлов).
/p: VerifyCollationCompatibility=(БУЛЕВОЕ 'Истина') Указывает, проверяется ли совместимость параметров сортировки.
/p: VerifyDeployment=(ЛОГИЧЕСКИЙ 'True') Указывает, следует ли выполнять проверки перед началом публикации, останавливаемой при возникновении проблем, которые могут заблокировать успешную публикацию. Например, публикация может остановиться в случае, если во время публикации возникли ошибки, связанные с тем, что внешние ключи в целевой базе данных не существуют в проекте базы данных.

Переменные SQLCMD

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

Параметр По умолчанию. Описание
/v:{PropertyName}={Value} Указывает пару "имя-значение" для переменной действия; {имя_переменной}={значение}. DACPAC-файл содержит список действительных переменных SQLCMD. Если значения каких-либо переменных не будут указаны, возникнет ошибка.

Следующие шаги