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

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

Примечание.

Хотя идентификатор Microsoft Entra — это новое имя 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: /В: {строка} Определяет маркер доступа для аутентификации на основе маркеров. Этот маркер используется при подключении к целевой базе данных.
/Action: /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" в качестве имени выходного файла.
/Diagnostics: /D: {True|False} Указывает, следует ли выводить сведения из журнала диагностики в консоль. Значение по умолчанию — False.
/DiagnosticsFile: /Df: {строка} Указывает файл, в котором следует вести журнал диагностики.
/MaxParallelism: /Mp: {целое_число} Задает степень параллелизма для параллельных операций с базой данных. Значение по умолчанию — 8.
/ModelFilePath: /Мфу: {строка} Определяет путь к файлу для переопределения файла model.xml в исходном файле. Использование этого параметра может привести к сбою развертывания и (или) непредвиденной потере данных. Этот параметр предназначен только для использования при устранении неполадок с публикацией, импортом или созданием скриптов.
/OverwriteFiles: /of: {True|False} Указывает, должен ли SqlPackage перезаписать существующие файлы. Указание false приводит к прерыванию действия SqlPackage, если обнаружен существующий файл. Значение по умолчанию — True.
/Profile: /Pr: {строка} Указывает путь к файлу приложения уровня данных профиля публикации. Профиль определяет коллекцию свойств и переменных, которые должны использоваться при формировании выходных данных.
/Properties: /p: {имя_свойства}={значение} Указывает пару "имя — значение" для связанного с действием свойства; {имя_свойства}={значение}.
/Quiet: /Q: {True|False} Указывает, происходит ли подавление подробного отзыва. Значение по умолчанию — False.
/ReferencePaths: /Rp: {имя_свойства}={значение} Указывает дополнительные каталоги для поиска ссылок DACPAC.
/Secret: /secr: {строка} Указывает секрет клиента, который будет использоваться при проверке подлинности в Azure Key Vault при необходимости.
/SourceFile: /Sf: {строка} Указывает исходный файл, который должен использоваться в качестве источника действия вместо базы данных из локального хранилища. Если используется этот параметр, все остальные параметры источника будут недействительны.
/SourceConnectionString: /Скс: {строка} Указывает допустимую строка подключения SQL Server или Azure в исходную базу данных. Если этот параметр указан, ему будет отдаваться предпочтение перед всеми остальными параметрами источника.
/SourceDatabaseName: /Sdn: {строка} Определяет имя базы данных-источника.
/SourceEncryptConnection: /Сек: {Необязательный|Обязательный|Строгий|True|False} Указывает, следует ли использовать шифрование SQL для соединения с базой данных-источником. Значение по умолчанию — True.
/SourceHostNameInCertificate: /shnic: {строка} Указывает значение, используемое для проверки исходного TLS/SSL-сертификата SQL Server, когда уровень обмена данными шифруется с помощью TLS.
/SourcePassword: /Sp: {строка} В сценариях с проверкой подлинности SQL Server — определяет пароль для доступа к базе данных-источнику.
/SourceServerName: /Ssn: {строка} Определяет имя сервера, где размещается база данных-источник.
/SourceTimeout: /St: {целое_число} Задает время ожидания подключения к базе данных-источнику (в секундах).
/SourceTrustServerCertificate: /stsc: {True|False} Определяет, используется ли протокол TLS для шифрования подключения к базе данных-источнику без прохода по цепочке сертификатов для проверки доверия. По умолчанию используется значение False.
/SourceUser: /Су: {строка} В сценариях с проверкой подлинности SQL Server — определяет пользователя SQL Server для доступа к базе данных-источнику.
/TargetConnectionString: /Tcs: {строка} Указывает допустимую строка подключения SQL Server или Azure в целевую базу данных. Если этот параметр указан, ему будет отдаваться предпочтение перед всеми остальными параметрами целевого объекта.
/TargetDatabaseName: /tdn: {строка} Задает переопределение для имени базы данных, которая является целью действия SqlPackage.
/TargetEncryptConnection: /Tec: {Необязательный|Обязательный|Строгий|True|False} Определяет, должно ли использоваться шифрование SQL для подключения к целевой базе данных. Значение по умолчанию — True.
/TargetHostNameInCertificate: /thnic: {строка} Указывает значение, используемое для проверки целевого TLS/SSL-сертификата SQL Server при шифровании уровня связи с помощью TLS.
/TargetPassword: /Tp: {строка} В сценариях с проверкой подлинности SQL Server — определяет пароль для доступа к целевой базе данных.
/TargetServerName: /Tsn: {строка} Определяет имя сервера, где размещается целевая база данных.
/TargetTimeout: /Tt: {целое_число} Задает время ожидания подключения к целевой базе данных (в секундах). Для идентификатора Microsoft Entra рекомендуется, чтобы это значение было больше или равно 30 секундам.
/TargetTrustServerCertificate: /ttsc: {True|False} Определяет, используется ли протокол 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|False} Указывает, следует ли использовать универсальную проверку подлинности. Если задано значение true, протокол интерактивной проверки подлинности активируется с поддержкой MFA. Этот параметр также можно использовать для проверки подлинности Microsoft Entra без MFA, используя интерактивный протокол, требующий от пользователя ввод имени пользователя и пароля или встроенной проверки подлинности (учетные данные Windows). Если для параметра /UniversalAuthentication задано значение True, проверка подлинности Microsoft Entra не может быть указана в source Подключение ionString (/scs). Если для параметра /UniversalAuthentication задано значение False, проверка подлинности Microsoft Entra должна быть указана в источнике Подключение ionString (/scs).
Дополнительные сведения об универсальной проверке подлинности Active Directory см. в статье Универсальная проверка подлинности с Базой данных SQL и Azure Synapse Analytics (поддержка SSMS для MFA).
/Variables: /V: {имя_свойства}={значение} Указывает пару "имя-значение" для переменной действия; {имя_переменной}={значение}. DACPAC-файл содержит список действительных переменных SQLCMD. Если значения каких-либо переменных не будут указаны, возникнет ошибка.

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

Свойство Значение Описание
/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) Маркер подписанного URL-адреса 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=({ Basic | Standard | Premium | DataWarehouse | GeneralPurpose | BusinessCritical | Hyperscale | Default } 'Default') Определяет выпуск Базы данных SQL Azure. См. Уровни служб Базы данных SQL Azure.
/p: DatabaseLockTimeout=(INT32 '60') Позволяет задать превышение времени ожидания блокировки в секундах для базы данных при выполнении запросов к SQL Server. Для ожидания без ограничений используйте значение "-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 'True') Отключение индексов перед импортом данных в SQL Server.
/p: DisableParallelismForEnablingIndexes=(BOOLEAN 'False') Не использовать параллелизм при перестроении индексов во время импорта данных в SQL Server.
/p: DoNotAlterChangeDataCaptureObjects=(BOOLEAN 'True') Если указано значение true, объекты отслеживания измененных данных не меняются.
/p: DoNotAlterReplicatedObjects=(BOOLEAN 'True') Указывает, определяются ли во время проверки реплицируемые объекты.
/p: DoNotDropDatabaseWorkloadGroups=(BOOLEAN 'False') При значении false группы WorkloadGroups в целевой базе данных, не определенные в источнике, будут удалены в ходе развертывания.
/p: DoNotDropObjectType=(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: 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=(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) Тип объекта, который должен игнорироваться во время развертывания. Допустимые имена типов объектов: 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: ExcludeObjectTypes=(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: GenerateSmartDefaults=(BOOLEAN 'False') Автоматически определяет значение по умолчанию при обновлении таблицы, содержащей данные со столбцом, который не допускает значения NULL.
/p: HashObjectNamesInLogs=(BOOLEAN 'False') Определяет, следует ли заменять все имена объектов в журналах случайным хэш-значением.
/p: IgnoreAnsiNulls=(BOOLEAN 'True') Определяет, пропускаются или обновляются различия в параметре ANSI NULLS при публикации в базе данных.
/p: IgnoreAuthorizer=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в Authorizer при публикации в базе данных.
/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') Определяет, пропускаются или обновляются различия в схеме по умолчанию при публикации в базе данных.
/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: 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: IgnoreUser Параметры Objects=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в объектах параметров пользователя при публикации в базе данных.
/p: IgnoreWhitespace=(BOOLEAN 'True') Определяет, пропускаются или обновляются различия в пробелах при публикации в базе данных.
/p: IgnoreWithNo проверка OnCheckConstraints=(BOOLEAN 'False') Определяет, пропускаются или обновляются различия в значении предложения WITH NOCHECK для проверочных ограничений при публикации.
/p: IgnoreWithNo проверка OnForeignKeys=(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: PopulateFilesOnFileGroups=(BOOLEAN 'True') Указывает, создается ли файл при создании файловой группы FileGroup в целевой базе данных.
/p: PreserveIdentityLastValues=(BOOLEAN 'False') Указывает, следует ли сохранять последние значения для столбцов идентификаторов во время развертывания.
/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) значением переменной, заданной при публикации. Значения переменных, заданные в командной строке, переопределяют другие значения, присвоенные переменной (например, в профиле публикации).

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

Next Steps