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


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

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

Note

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

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

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

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

Note

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

Examples

# 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;"

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

Parameter Краткая форма Value Description
/AccessToken: /at: {string} Указывает токен доступа для аутентификации, основанной на токенах, который используется при подключении к целевой базе данных.
/Action: /a: Publish Указывает действие, подлежащее выполнению.
/AzureCloudConfig: /acc: {string} Указывает пользовательские конечные точки для подключения к идентификатору Microsoft Entra в формате: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}".
/AzureKeyVaultAuthMethod: /akv: {Interactive|ClientIdSecret} Указывает метод проверки подлинности, используемый для доступа к Azure KeyVault, если операция публикации включает изменения в зашифрованную таблицу или столбец.
/ClientId: /cid: {string} Указывает идентификатор клиента, который будет использоваться при проверке подлинности в Azure Key Vault при необходимости.
/DeployReportPath: /drp: {string} Указывает необязательный путь для вывода XML-файла отчета о развертывании.
/DeployScriptPath: /dsp: {string} Указывает необязательный путь для вывода скрипта развертывания. Если для развертываний Azure существуют команды Transact-SQL для создания или изменения базы данных master, скрипт будет записан в тот же путь, но с "Filename_Master.sql" в качестве имени выходного файла.
/Diagnostics: /d: {True|False} Указывает, следует ли выводить сведения из журнала диагностики в консоль. Значение по умолчанию — False.
/DiagnosticsFile: /df: {string} Указывает файл, в котором следует вести журнал диагностики.
/DiagnosticsLevel: /dl {None|Off|Critical|Error|Warning|Information|Verbose} Указывает уровни отфильтрованных сообщений трассировки в файле диагностики
/DiagnosticsPackageFile: /dpf {string} Указывает файл для хранения пакета диагностики.
/MaxParallelism: /mp: {int} Задает степень параллелизма для параллельных операций с базой данных. Значение по умолчанию — 8.
/ModelFilePath: /mfp: {string} Указывает путь к файлу для замены model.xml в исходном файле. Использование этого параметра может привести к сбою развертывания и (или) непредвиденной потере данных. Этот параметр предназначен только для использования при устранении неполадок с публикацией, импортом или созданием скриптов.
/OverwriteFiles: /of: {True|False} Указывает, должен ли SqlPackage перезаписать существующие файлы. Указание false приводит к прерыванию действия SqlPackage, если обнаружен существующий файл. Значение по умолчанию — True.
/Profile: /pr: {string} Указывает путь к файлу приложения уровня данных профиля публикации. Профиль определяет коллекцию свойств и переменных, которые должны использоваться при формировании выходных данных.
/Properties: /p: {PropertyName}={Value} Указывает пару "имя — значение" для связанного с действием свойства; {имя_свойства}={значение}.
/Quiet: /q: {True|False} Указывает, происходит ли подавление подробного отзыва. Значение по умолчанию — False.
/ReferencePaths: /rp: {PropertyName}={Value} Указывает дополнительные каталоги для поиска ссылок на .dacpac.
/Secret: /secr: {string} Указывает секрет клиента, который будет использоваться при проверке подлинности в Azure Key Vault при необходимости.
/SourceFile: /sf: {string} Указывает исходный файл, который должен использоваться в качестве источника действия вместо базы данных из локального хранилища. Если используется этот параметр, все остальные параметры источника будут недействительны.
/SourceConnectionString: /scs: {string} Указывает допустимую строку подключения SQL Server/Azure к исходной базе данных. Если этот параметр указан, ему будет отдаваться предпочтение перед всеми остальными параметрами источника.
/SourceDatabaseName: /sdn: {string} Определяет имя базы данных-источника.
/SourceEncryptConnection: /sec: {Optional|Mandatory|Strict|True|False} Указывает, следует ли использовать шифрование SQL для соединения с базой данных-источником. Значение по умолчанию — True.
/SourceHostNameInCertificate: /shnic: {string} Указывает значение, используемое для проверки исходного TLS/SSL-сертификата SQL Server, когда уровень обмена данными шифруется с помощью TLS.
/SourcePassword: /sp: {string} В сценариях с проверкой подлинности SQL Server — определяет пароль для доступа к базе данных-источнику.
/SourceServerName: /ssn: {string} Определяет имя сервера, где размещается база данных-источник.
/SourceTimeout: /st: {int} Задает время ожидания подключения к базе данных-источнику (в секундах).
/SourceTrustServerCertificate: /stsc: {True|False} Определяет, используется ли протокол TLS для шифрования подключения к базе данных-источнику без прохода по цепочке сертификатов для проверки доверия. По умолчанию используется значение False.
/SourceUser: /su: {string} В сценариях с проверкой подлинности SQL Server — определяет пользователя SQL Server для доступа к базе данных-источнику.
/TargetConnectionString: /tcs: {string} Указывает допустимую строка подключения SQL Server или Azure в целевую базу данных. Если этот параметр указан, ему будет отдаваться предпочтение перед всеми остальными параметрами целевого объекта.
/TargetDatabaseName: /tdn: {string} Задает переопределение для имени базы данных, которая является целью действия SqlPackage.
/TargetEncryptConnection: /tec: {Optional|Mandatory|Strict|True|False} Определяет, должно ли использоваться шифрование SQL для подключения к целевой базе данных. Значение по умолчанию — True.
/TargetHostNameInCertificate: /thnic: {string} Указывает значение, используемое для проверки целевого TLS/SSL-сертификата SQL Server при шифровании уровня связи с помощью TLS.
/TargetPassword: /tp: {string} В сценариях с проверкой подлинности SQL Server — определяет пароль для доступа к целевой базе данных.
/TargetServerName: /tsn: {string} Определяет имя сервера, где размещается целевая база данных.
/TargetTimeout: /tt: {int} Задает время ожидания подключения к целевой базе данных (в секундах). Для идентификатора Microsoft Entra рекомендуется, чтобы это значение было больше или равно 30 секундам.
/TargetTrustServerCertificate: /ttsc: {True|False} Определяет, используется ли протокол TLS для шифрования подключения к целевой базе данных без прохода по цепочке сертификатов для проверки доверия. По умолчанию используется значение False.
/TargetUser: /tu: {string} В сценариях с проверкой подлинности SQL Server — определяет пользователя SQL Server для доступа к целевой базе данных.
/TenantId: /tid: {string} Представляет идентификатор клиента Microsoft Entra или доменное имя. Этот параметр необходим для поддержки гостевых или импортированных пользователей Microsoft Entra, а также учетных записей Майкрософт, таких как outlook.com, hotmail.com или live.com. Если этот параметр опущен, будет использоваться идентификатор клиента по умолчанию для идентификатора Microsoft Entra, предполагая, что прошедший проверку подлинности пользователь является собственным пользователем для этого клиента. Однако в этом случае любые гостевые или импортированные пользователи и /или учетные записи Майкрософт, размещенные в этом идентификаторе Microsoft Entra, не поддерживаются, и операция завершится ошибкой.
Дополнительные сведения см. в статье Универсальная проверка подлинности с Базой данных SQL и Azure Synapse Analytics (поддержка SSMS для MFA).
/ThreadMaxStackSize: /tmss: {int} Указывает максимальный размер в мегабайтах для потока, выполняемого действием SqlPackage. Этот параметр следует использовать только при обнаружении исключений переполнения стека, возникающих при анализе очень больших инструкций Transact-SQL.
/UniversalAuthentication: /ua: {True|False} Указывает, следует ли использовать универсальную проверку подлинности. Если задано значение 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).
/Variables: /v: {PropertyName}={Value} Указывает пару "имя-значение" для переменной действия; {имя_переменной}={значение}. DACPAC-файл содержит список действительных переменных SQLCMD. Если значения каких-либо переменных не будут указаны, возникнет ошибка.

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

Property Value Description
/p: AdditionalDeploymentContributorArguments=(STRING) Задает дополнительные аргументы участника развертывания для участников развертывания. Это свойство должно быть списком значений, разделенных точкой с запятой.
/p: AdditionalDeploymentContributorPaths=(STRING) Указывает пути для загрузки дополнительных участников развертывания. Это свойство должно быть списком значений, разделенных точкой с запятой.
/p: AdditionalDeploymentContributors=(STRING) Указывает дополнительных участников развертывания, которые должны выполняться при развертывании пакета DACPAC. Это свойство должно быть списком имен или идентификаторов участников сборки, полностью соответствующих требованиям, разделённых точками с запятой.
/p: AllowDropBlockingAssemblies=(BOOLEAN 'False') Это свойство используется развертыванием SqlClr для удаления любых блокирующих сборок в рамках плана развертывания. По умолчанию, любые блокирующие или ссылающиеся сборки будут препятствовать обновлению сборки, если ссылающаяся сборка должна быть удалена.
/p: AllowExternalLanguagePaths=(BOOLEAN 'False') Разрешает использовать пути к файлам (при их доступности) для создания инструкций внешнего языка.
/p: AllowExternalLibraryPaths=(BOOLEAN 'False') Разрешает использовать пути к файлам (при их доступности) для создания инструкций внешней библиотеки.
/p: AllowIncompatiblePlatform=(BOOLEAN 'False') Указывает, пытаться ли выполнить это действие, несмотря на несовместимость платформ SQL Server.
/p: AllowTableRecreation=(BOOLEAN 'True') Указывает, следует ли разрешать восстановление таблиц во время развертывания при необходимости для изменения схемы. Восстановление таблиц перестраивает таблицу при сохранении данных, но может оказать значительное влияние на производительность.
/p: AllowUnsafeRowLevelSecurityDataMovement=(BOOLEAN '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: BlockOnPossibleDataLoss=(BOOLEAN 'True') Указывает, что операция будет прервана на этапе проверки схемы, если изменения схемы могут привести в итоге к потере данных, в том числе из-за снижения точности данных или изменения типа данных, требующего операции приведения. Значение по умолчанию (True) приводит к завершению операции независимо от того, содержит ли данные целевая база данных. Выполнение со значением False для BlockOnPossibleDataLoss также может завершиться ошибкой во время выполнения плана развертывания, если в целевом объекте есть данные, которые невозможно преобразовать в новый тип столбца.
/p: BlockWhenDriftDetected=(BOOLEAN 'True') Указывает, следует ли блокировать обновление базы данных, схема которой больше не соответствует регистрации или регистрация которой удалена.
/p: CommandTimeout=(INT32 '60') Задает время ожидания команды в секундах при выполнении запросов к SQL Server.
/p: CommentOutSetVarDeclarations=(BOOLEAN 'False') Указывает, будет ли объявление переменных SETVAR закомментировано в созданном скрипте публикации. Эту возможность можно выбрать, если планируется задавать значения в командной строке во время публикации с помощью такого средства, как SQLCMD.EXE.
/p: CompareUsingTargetCollation=(BOOLEAN 'False') Этот параметр указывает, как обрабатываются параметры сортировки базы данных во время развертывания. По умолчанию параметры сортировки целевой базы данных обновляются, если они не совпадают с параметрами сортировки, указанными источником. Если задан этот параметр, следует использовать сортировку целевой базы данных (или сервера).
/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: DisableAndReenableDdlTriggers=(BOOLEAN 'True') Указывает, следует ли отключить триггеры языка описания данных DDL в начале процесса публикации и включить их в конце.
/p: DisableIndexesForDataPhase=(BOOLEAN 'Истина') Отключение индексов перед импортом данных в SQL Server.
/p: DisableParallelismForEnablingIndexes=(BOOLEAN 'Ложь') Не использовать параллелизм при перестроении индексов во время импорта данных в SQL Server.
/p: DoNotAlterChangeDataCaptureObjects=(BOOLEAN 'True') Если указано значение true, объекты отслеживания измененных данных не меняются.
/p: DoNotAlterReplicatedObjects=(BOOLEAN 'True') Указывает, определяются ли во время проверки реплицируемые объекты.
/p: DoNotDropDatabaseWorkloadGroups=(BOOLEAN 'False') При значении false, рабочие группы базы данных целевой базы, которые не определены в исходном источнике, будут удалены в процессе развертывания.
/p: DoNotDropObjectType=(STRING) Тип объекта, который нельзя удалять, если элемент DropObjectsNotInSource имеет значение true. Допустимые имена типов объектов: Агрегаты, Роли приложений, Сборки, Файлы сборки, Асимметричные ключи, Приоритеты брокера, Сертификаты, Ключи шифрования столбцов, Мастер-ключи столбцов, Контракты, Параметры базы данных, Роли базы данных, Триггеры базы данных, Определения, Расширенные свойства, Внешние источники данных, Внешние форматы файлов, Внешние таблицы, Группы файлов, Файлы, Таблицы файлов, Каталоги полнотекстового поиска, Списки стоп-слов полнотекстового поиска, Типы сообщений, Функции разделения, Схемы разделения, Разрешения, Очереди, Удаленные привязки сервисов, Членство в ролях, Правила, Скалярные функции, Списки свойств поиска, Политики безопасности, Последовательности, Сервисы, Подписи, Хранимые процедуры, Симметричные ключи, Синонимы, Таблицы, Табличные функции, Пользовательские типы данных, Пользовательские типы таблиц, Клир-пользовательские типы данных, Пользователи, Представления, Коллекции схем XML, Аудиты, Учетные данные, Криптографические провайдеры, Спецификации аудита базы данных, Ключи шифрования базы данных, Учетные данные, применимые к базе данных, Конечные точки, Сообщения об ошибках, Уведомления о событиях, Сессии событий, Учетные данные для связанного сервера, Связанные серверы, Учетные записи, Мастер-ключи, Маршруты, Спецификации аудита сервера, Членство в ролях сервера, Роли сервера, Триггеры сервера, Внешние потоки, Внешние потоки заданий, Группы рабочей нагрузки базы данных, Классификаторы рабочей нагрузки, Внешние библиотеки, Внешние языки. Это свойство может быть указано несколько раз, чтобы указать несколько параметров.
/p: DoNotDropObjectTypes=(STRING) Список типов объектов (разделенных точками с запятой), которые не следует удалять, если параметр DropObjectsNotInSource имеет значение true. Допустимые имена типов объектов: Агрегаты, Роли приложений, Сборки, Файлы сборки, Асимметричные ключи, Приоритеты брокера, Сертификаты, Ключи шифрования столбцов, Мастер-ключи столбцов, Контракты, Параметры базы данных, Роли базы данных, Триггеры базы данных, Определения, Расширенные свойства, Внешние источники данных, Внешние форматы файлов, Внешние таблицы, Группы файлов, Файлы, Таблицы файлов, Каталоги полнотекстового поиска, Списки стоп-слов полнотекстового поиска, Типы сообщений, Функции разделения, Схемы разделения, Разрешения, Очереди, Удаленные привязки сервисов, Членство в ролях, Правила, Скалярные функции, Списки свойств поиска, Политики безопасности, Последовательности, Сервисы, Подписи, Хранимые процедуры, Симметричные ключи, Синонимы, Таблицы, Табличные функции, Пользовательские типы данных, Пользовательские типы таблиц, Клир-пользовательские типы данных, Пользователи, Представления, Коллекции схем XML, Аудиты, Учетные данные, Криптографические провайдеры, Спецификации аудита базы данных, Ключи шифрования базы данных, Учетные данные, применимые к базе данных, Конечные точки, Сообщения об ошибках, Уведомления о событиях, Сессии событий, Учетные данные для связанного сервера, Связанные серверы, Учетные записи, Мастер-ключи, Маршруты, Спецификации аудита сервера, Членство в ролях сервера, Роли сервера, Триггеры сервера, Внешние потоки, Внешние потоки заданий, Группы рабочей нагрузки базы данных, Классификаторы рабочей нагрузки, Внешние библиотеки, Внешние языки.
/p: DoNotDropWorkloadClassifiers=(BOOLEAN 'False') При значении false классификаторы WorkloadClassifiers в целевой базе данных, не определенные в источнике, будут удалены в ходе развертывания.
/p: DoNotEvaluateSqlCmdVariables=(BOOLEAN 'True') Указывает, что переменные SQLCMD не должны заменяться значениями.
/p: DropConstraintsNotInSource=(BOOLEAN 'True') Указывает, будут ли ограничения, которые не существуют в моментальном снимке базы данных (DACPAC), удалены из целевой базы данных при выполнении публикации.
/p: DropDmlTriggersNotInSource=(BOOLEAN 'True') Указывает, будут ли триггеры DML, которые отсутствуют в файле моментального снимка базы данных (.dacpac), удалены из целевой базы данных при выполнении публикации.
/p: DropExtendedPropertiesNotInSource=(BOOLEAN 'True') Указывает, будут ли расширенные свойства, которые отсутствуют в файле моментального снимка базы данных (.dacpac), удалены из целевой базы данных при публикации в базу данных.
/p: DropIndexesNotInSource=(BOOLEAN 'True') Указывает, должны ли отсутствующие в файле моментального снимка базы данных (.dacpac) индексы быть удалены из целевой базы данных при публикации.
/p: DropObjectsNotInSource=(BOOLEAN 'False') Указывает, следует ли удалять из целевой базы данных объекты, которых нет в файле моментального снимка базы данных (.dacpac), в процессе публикации в базу данных. Это значение имеет приоритет над элементом DropExtendedProperties.
/p: DropPermissionsNotInSource=(BOOLEAN 'False') Указывает, будут ли права доступа, которые отсутствуют в файле моментального снимка базы данных (.dacpac), удалены из целевой базы данных при публикации обновлений.
/p: DropRoleMembersNotInSource=(BOOLEAN 'False') Указывает, будут ли участники ролей, которые не определены в файле моментального снимка базы данных (.dacpac), удалены из целевой базы данных при публикации обновлений в базу данных.
/p: DropStatisticsNotInSource=(BOOLEAN 'True') Указывает, будет ли статистика, которая отсутствует в файле моментального снимка базы данных (DACPAC), удалена из целевой базы данных при публикации в базе данных.
/p: EnclaveAttestationProtocol=(STRING) Определяет протокол аттестации, используемый в Always Encrypted на основе анклавов.
/p: EnclaveAttestationUrl=(STRING) Указывает URL-адрес аттестации анклава (конечная точка службы аттестации), используемый для Always Encrypted на основе анклавов.
/p: ExcludeObjectType=(STRING) Тип объекта, который должен игнорироваться во время развертывания. Допустимые имена типов объектов: Агрегаты, Роли приложений, Сборки, Файлы сборки, Асимметричные ключи, Приоритеты брокера, Сертификаты, Ключи шифрования столбцов, Мастер-ключи столбцов, Контракты, Параметры базы данных, Роли базы данных, Триггеры базы данных, Определения, Расширенные свойства, Внешние источники данных, Внешние форматы файлов, Внешние таблицы, Группы файлов, Файлы, Таблицы файлов, Каталоги полнотекстового поиска, Списки стоп-слов полнотекстового поиска, Типы сообщений, Функции разделения, Схемы разделения, Разрешения, Очереди, Удаленные привязки сервисов, Членство в ролях, Правила, Скалярные функции, Списки свойств поиска, Политики безопасности, Последовательности, Сервисы, Подписи, Хранимые процедуры, Симметричные ключи, Синонимы, Таблицы, Табличные функции, Пользовательские типы данных, Пользовательские типы таблиц, Клир-пользовательские типы данных, Пользователи, Представления, Коллекции схем XML, Аудиты, Учетные данные, Криптографические провайдеры, Спецификации аудита базы данных, Ключи шифрования базы данных, Учетные данные, применимые к базе данных, Конечные точки, Сообщения об ошибках, Уведомления о событиях, Сессии событий, Учетные данные для связанного сервера, Связанные серверы, Учетные записи, Мастер-ключи, Маршруты, Спецификации аудита сервера, Членство в ролях сервера, Роли сервера, Триггеры сервера, Внешние потоки, Внешние потоки заданий, Группы рабочей нагрузки базы данных, Классификаторы рабочей нагрузки, Внешние библиотеки, Внешние языки. Это свойство может быть указано несколько раз, чтобы указать несколько параметров.
/p: ExcludeObjectTypes=(STRING) Список типов объектов с запятой, которые следует игнорировать во время развертывания. Допустимые имена типов объектов: Агрегаты, Роли приложений, Сборки, Файлы сборки, Асимметричные ключи, Приоритеты брокера, Сертификаты, Ключи шифрования столбцов, Мастер-ключи столбцов, Контракты, Параметры базы данных, Роли базы данных, Триггеры базы данных, Определения, Расширенные свойства, Внешние источники данных, Внешние форматы файлов, Внешние таблицы, Группы файлов, Файлы, Таблицы файлов, Каталоги полнотекстового поиска, Списки стоп-слов полнотекстового поиска, Типы сообщений, Функции разделения, Схемы разделения, Разрешения, Очереди, Удаленные привязки сервисов, Членство в ролях, Правила, Скалярные функции, Списки свойств поиска, Политики безопасности, Последовательности, Сервисы, Подписи, Хранимые процедуры, Симметричные ключи, Синонимы, Таблицы, Табличные функции, Пользовательские типы данных, Пользовательские типы таблиц, Клир-пользовательские типы данных, Пользователи, Представления, Коллекции схем XML, Аудиты, Учетные данные, Криптографические провайдеры, Спецификации аудита базы данных, Ключи шифрования базы данных, Учетные данные, применимые к базе данных, Конечные точки, Сообщения об ошибках, Уведомления о событиях, Сессии событий, Учетные данные для связанного сервера, Связанные серверы, Учетные записи, Мастер-ключи, Маршруты, Спецификации аудита сервера, Членство в ролях сервера, Роли сервера, Триггеры сервера, Внешние потоки, Внешние потоки заданий, Группы рабочей нагрузки базы данных, Классификаторы рабочей нагрузки, Внешние библиотеки, Внешние языки.
/p: GenerateSmartDefaults=(BOOLEAN 'False') Автоматически определяет значение по умолчанию при обновлении таблицы, содержащей данные со столбцом, который не допускает значения NULL.
/p: HashObjectNamesInLogs=(BOOLEAN 'Ложь') Определяет, следует ли заменять все имена объектов в журналах случайным хэш-значением.
/p: IgnoreAnsiNulls=(BOOLEAN 'True') Определяет, пропускаются или обновляются различия в параметре ANSI NULLS при публикации в базе данных.
/p: IgnoreAuthorizer=(BOOLEAN 'False') Определяет, следует ли игнорировать или обновлять различия авторизатора при публикации в базе данных.
/p: IgnoreColumnCollation=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в параметрах сортировки столбцов при публикации в базе данных.
/p: IgnoreColumnOrder=(BOOLEAN 'False') Указывает, следует ли игнорировать или обновлять различия в порядке столбцов таблицы при публикации в базе данных.
/p: IgnoreComments=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в комментариях при публикации в базе данных.
/p: IgnoreCryptographicProviderFilePath=(BOOLEAN 'True') Определяет, следует ли игнорировать или обновлять различия в пути к файлам криптографического провайдера при публикации в базе данных.
/p: IgnoreDatabaseWorkloadGroups=(BOOLEAN 'False') Указывает, следует ли исключать во время развертывания группы рабочей нагрузки, существующие в целевом объекте. Группы рабочей нагрузки базы данных не будут добавлены, изменены или удалены.
/p: IgnoreDdlTriggerOrder=(BOOLEAN 'False') Определяет, следует игнорировать или обновлять различия в порядке триггеров языка описания данных (DDL) при публикации в базе данных или на сервере.
/p: IgnoreDdlTriggerState=(BOOLEAN 'False') Определяет, должны ли быть проигнорированы или обновлены различия в включенном или выключенном состоянии триггеров DDL, при публикации в базе данных.
/p: IgnoreDefaultSchema=(BOOLEAN 'False') Указывает, следует ли игнорировать или обновлять различия в параметре DEFAULT_SCHEMA для пользователей и ролей приложений при публикации в базе данных.
/p: IgnoreDmlTriggerOrder=(BOOLEAN 'False') Определяет, следует ли игнорировать или обновлять различия в порядке триггеров языка манипуляции данными (DML) при публикации в базу данных.
/p: IgnoreDmlTriggerState=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в состоянии (включен–выключен) триггеров DML при публикации в базе данных.
/p: IgnoreExtendedProperties=(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 'False') Определяет, следует ли игнорировать или обновлять изменения в начальном значении для столбца идентификаторов, когда вы публикуете обновления в базе данных.
/p: IgnoreIncrement=(BOOLEAN 'False') Определяет, игнорируются или обновляются различия в приращении для столбца идентичности при публикации в базе данных.
/p: IgnoreIndexOptions=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в параметрах индексов при публикации в базе данных.
/p: IgnoreIndexPadding=(BOOLEAN 'True') Определяет, игнорируются или обновляются различия в заполнении индексов при публикации в базу данных.
/p: IgnoreKeywordCasing=(BOOLEAN 'True') Определяет, пропускаются или обновляются различия в регистре ключевых слов при публикации в базе данных.
/p: IgnoreLockHintsOnIndexes=(BOOLEAN 'False') Указывает, следует ли игнорировать или обновлять различия в подсказках блокировки индексов при публикации в базе данных.
/p: IgnoreLoginSids=(BOOLEAN 'True') Указывает, следует ли игнорировать или обновлять различия в идентификаторе безопасности (SID) при публикации в базе данных.
/p: IgnoreNotForReplication=(BOOLEAN 'False') Определяет, пропускаются или обновляются параметры "не для репликации" при публикации в базе данных.
/p: IgnoreObjectPlacementOnPartitionScheme=(BOOLEAN 'True') Определяет, игнорируется или обновляется размещение объекта в схеме секционирования при размещении в базе данных.
/p: IgnorePartitionSchemes=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в функциях и схемах секционирования при публикации в базе данных.
/p: IgnorePermissions=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в разрешениях при публикации в базе данных.
/p: IgnorePostDeployScript=(BOOLEAN 'False') Если значение true, скрипт после развертывания из DACPAC не будет присоединен к плану развертывания.
/p: IgnorePreDeployScript=(BOOLEAN 'False') Если установлено значение true, скрипт предварительного развертывания из файла .dacpac не будет включён в план деплоймента.
/p: IgnoreQuotedIdentifiers=(BOOLEAN 'True') Определяет, следует ли игнорировать или обновлять различия в параметрах кавычек идентификаторов при публикации в базу данных.
/p: IgnoreRoleMembership=(BOOLEAN 'False') Указывает, следует игнорировать или обновлять различия в членстве ролей логинов при публикации в базу данных.
/p: IgnoreRouteLifetime=(BOOLEAN 'True') Определяет, пропускаются или обновляются различия в продолжительности периода, в течение которого SQL Server хранит маршрут в таблице маршрутизации, при публикации в базе данных.
/p: IgnoreSemicolonBetweenStatements=(BOOLEAN 'True') Определяет, будут ли различия в синтаксисе между инструкциями T-SQL игнорироваться или обновляться при публикации в базу данных.
/p: IgnoreSensitivityClassifications=(BOOLEAN 'False') Указывает, следует ли игнорировать классификации конфиденциальности данных для столбцов при сравнении моделей схем. Это работает только для классификаций, добавленных с помощью синтаксиса ADD SENSITIVITY CLASSIFICATION, представленного в SQL 2019.
/p: IgnoreTableOptions=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в параметрах таблиц при публикации в базе данных.
/p: IgnoreTablePartitionOptions=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в параметрах секций таблиц при публикации в базе данных. Этот параметр применяется только к базам данных выделенного пула SQL Azure Synapse Analytics.
/p: IgnoreUserSettingsObjects=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в объектах параметров пользователя при публикации в базе данных.
/p: IgnoreWhitespace=(BOOLEAN 'True') Определяет, игнорируются или обновляются различия в пробелах при публикации в базе данных.
/p: IgnoreWithNocheckOnCheckConstraints=(BOOLEAN 'False') Определяет, будут ли игнорироваться или обновляться изменения в значении предложения WITH NOCHECK для проверочных ограничений при публикации данных.
/p: IgnoreWithNocheckOnForeignKeys=(BOOLEAN 'False') Определяет, будут ли игнорироваться или обновляться различия в значениях предложения WITH NOCHECK для внешних ключей при публикации в базе данных.
/p: IgnoreWorkloadClassifiers=(BOOLEAN 'False') Указывает, следует ли исключать во время развертывания классификаторы рабочей нагрузки, существующие в целевом объекте.
/p: IncludeCompositeObjects=(BOOLEAN 'False') Позволяет включить все составные элементы с той же базой данных как часть единственной операции публикации.
/p: IncludeTransactionalScripts=(BOOLEAN 'False') Определяет, будут ли по возможности использоваться инструкции транзакций при публикации в базе данных.
/p: IsAlwaysEncryptedParameterizationEnabled=(BOOLEAN 'False') Включает параметризацию переменных для столбцов Always Encrypted в скриптах, выполняемых до и после развертывания.
/p: LongRunningCommandTimeout=(INT32 '0') Позволяет задать время ожидания в секундах для команды, выполняющейся долгое время, при выполнении запросов для SQL Server. Для ожидания без ограничений используйте значение "0".
/p: NoAlterStatementsToChangeClrTypes=(BOOLEAN 'False') Указывает, что при публикации, если имеются различия, сборка всегда должна быть удалена и создана заново вместо выполнения инструкции ALTER ASSEMBLY.
/p: PerformIndexOperationsOnline=(BOOLEAN 'False') Указывает, следует ли выполнять операции индексов в сети во время развертывания.
/p: ЗаполнениеFilesOnFileGroups=(BOOLEAN 'True') Указывает, создается ли также новый файл при создании новой файловой группы в базе данных назначения.
/p: PreserveIdentityLastValues=(BOOLEAN 'Ложь') Указывает, следует ли сохранять последние значения для столбцов идентификаторов во время развертывания.
/p: RebuildIndexesOfflineForDataPhase=(BOOLEAN 'False') Перестройка индексов в автономном режиме после импорта данных.
/p: RegisterDataTierApplication=(BOOLEAN 'False') Указывает, регистрируется ли схема на сервере базы данных.
/p: RestoreSequenceCurrentValue=(BOOLEAN 'True') Указывает, должно ли текущее значение объекта последовательности развертываться с помощью DACPAC-файла. Значение по умолчанию — True.
/p: RunDeploymentPlanExecutors=(BOOLEAN 'False') Указывает, следует ли запускать участников DeploymentPlanExecutor при выполнении других операций.
/p: ScriptDatabaseCollation=(BOOLEAN 'False') Определяет, следует ли игнорировать или обновлять различия в сопоставлении базы данных, когда вы публикуете в базу данных.
/p: ScriptDatabaseCompatibility=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в уровне совместимости базы данных при публикации в базе данных.
/p: ScriptDatabaseOptions=(BOOLEAN 'True') Определяет, будут ли свойства целевой базы данных задаваться или обновляться в рамках действия публикации.
/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: UnmodifiableObjectWarnings=(BOOLEAN 'True') Указывает, следует ли формировать предупреждения, если обнаружены различия в объектах, которые не могут быть изменены (например, если отличаются размеры или пути файлов).
/p: VerifyCollationCompatibility=(BOOLEAN 'True') Указывает, проверяется ли совместимость параметров сортировки.
/p: VerifyDeployment=(BOOLEAN 'True') Указывает, следует ли выполнять проверки перед началом публикации, останавливаемой при возникновении проблем, которые могут заблокировать успешную публикацию. Например, публикация может остановиться в случае, если во время публикации возникли ошибки, связанные с тем, что внешние ключи в целевой базе данных не существуют в проекте базы данных.

Переменные SQLCMD

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

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

Дальнейшие шаги