Parâmetros, propriedades e variáveis SQLCMD da ação Publish do SqlPackage

A operação publish do SqlPackage atualiza o esquema de um banco de dados de destino de maneira incremental para que ele corresponda à estrutura de um banco de dados de origem. A publicação de um pacote de implantação que contenha dados de usuário para todos ou para um subconjunto das tabelas atualizará os dados da tabela além do esquema. A implantação de dados substitui o esquema e os dados em tabelas existentes do banco de dados de destino. A implantação de dados não alterará o esquema existente ou os dados no banco de dados de destino para tabelas que não são incluídas no pacote de implantação. Um novo banco de dados pode ser criado pela ação de publicação quando o usuário autenticado tiver permissões para criação de banco de dados. A permissão necessária para a ação de publicação em um banco de dados existente é db_owner.

Observação

Embora o Microsoft Entra ID seja o novo nome do Azure Active Directory (Azure AD), para evitar a interrupção de ambientes existentes, o Azure AD ainda permanecerá em alguns elementos codificados, como campos de interface do usuário, provedores de conexão, códigos de erro e cmdlets. Neste artigo, os dois nomes são intercambiáveis.

Sintaxe da linha de comando

O SqlPackage inicia as ações especificadas usando os parâmetros, as propriedades e as variáveis do sqlcmd especificados na linha de comando.

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

Observação

Quando um banco de dados com as credenciais de usuário de autenticação do SQL é extraído, a senha é substituída por outra senha de complexidade adequada. Presume-se que, depois que o DACPAC é publicado, a senha do usuário seja alterada.

Exemplos

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

Parâmetros da ação Publish

Parâmetro Forma abreviada Valor Descrição
/AccessToken: /at: {string} Especifica o token de acesso da autenticação com base em token a ser utilizado quando se conectar ao banco de dados de destino.
/Action: /a: Publicar Especifica a ação a ser executada.
/AzureCloudConfig: /acc: {string} Especifica os pontos de extremidade personalizados para conectar ao Microsoft Entra ID no formato: AzureActiveDirectoryAuthority={value};DatabaseServicePrincipalName={value}".
/AzureKeyVaultAuthMethod: /akv: {Interactive|ClientIdSecret} Especifica qual método de autenticação será usado para acessar o Azure Key Vault se uma operação de publicação incluir modificações em uma tabela/coluna criptografada.
/ClientId: /cid: {string} Especifica a ID do Cliente a ser usada na autenticação no Azure Key Vault, quando necessário
/DeployReportPath: /drp: {string} Especifica um caminho de arquivo opcional no qual o arquivo xml do relatório de implantação será salvo.
/DeployScriptPath: /dsp: {string} Especifica um caminho de arquivo opcional no qual o script de implantação será salvo. Nas implantações do Azure, se houver comandos Transact-SQL para criar ou banco de dados mestre para modificar, um script será gravado no mesmo caminho, mas com "Filename_Master.sql" como o nome do arquivo de saída.
/Diagnostics: /d: {True|False} Especifica se o log de diagnósticos é emitido como saída para o console. Usa False como padrão.
/DiagnosticsFile: /df: {string} Especifica um arquivo para armazenar logs de diagnóstico.
/MaxParallelism: /mp: {int} Especifica o grau de paralelismo para operações simultâneas que são executadas em um banco de dados. O valor padrão é 8.
/ModelFilePath: /mfp: {string} Especifica o caminho do arquivo para substituir model.xml no arquivo de origem. O uso dessa configuração pode resultar em falha na implantação e/ou perda de dados indesejada. Essa configuração é destinada somente para o uso durante a solução de problemas com publicação, importação ou geração de script.
/OverwriteFiles: /of: {True|False} Especifica se o SqlPackage deve substituir os arquivos existentes. Se você especificar false, isso fará com que o SqlPackage anule a ação se um arquivo existente for encontrado. O valor padrão é True.
/Profile: /pr: {string} Especifica o caminho de um arquivo para um perfil de publicação do DAC. O perfil define uma coleção de propriedades e variáveis para serem usadas ao gerar saídas.
/Properties: /p: {PropertyName}={Value} Especifica um par nome-valor para uma propriedade específica da ação;{PropertyName}={Value}.
/Quiet: /q: {True|False} Especifica se os comentários detalhados serão suprimidos. Usa False como padrão.
/ReferencePaths: /rp: {PropertyName}={Value} Especifica os diretórios adicionais para procurar por referências .dacpac.
/Secret: /secr: {string} Especifica o Segredo do Cliente a ser usado na autenticação no Azure Key Vault, quando necessário
/SourceFile: /sf: {string} Especifica um arquivo de origem a ser usado como origem da ação, em vez de um banco de dados do armazenamento local. Se esse parâmetro for usado, nenhum outro parâmetro de origem deverá ser válido.
/SourceConnectionString: /scs: {string} Especifica uma cadeia de conexão válida do SQL Server/do Azure para o banco de dados de origem. Se esse parâmetro for especificado, ele deverá ser usado exclusivamente entre todos os outros parâmetros de origem.
/SourceDatabaseName: /sdn: {string} Define o nome do banco de dados de origem.
/SourceEncryptConnection: /sec: {Optional|Mandatory|Strict|True|False} Especifica se a criptografia SQL deve ser usada para a conexão do banco de dados de origem. O valor padrão é True.
/SourceHostNameInCertificate: /shnic: {string} Especifica o valor usado para validar o certificado TLS/SSL do SQL Server de origem quando a camada de comunicação é criptografada usando TLS.
/SourcePassword: /sp: {string} Para cenários de autenticação do SQL Server, define a senha a ser usada para acessar o banco de dados de origem.
/SourceServerName: /ssn: {string} Define o nome do servidor que hospeda o banco de dados de origem.
/SourceTimeout: /st: {int} Especifica o tempo limite para estabelecer uma conexão com o banco de dados de origem em segundos.
/SourceTrustServerCertificate: /stsc: {True|False} Especifica se o protocolo TLS será usado para criptografar a conexão de banco de dados de origem e ignorar a verificação da cadeia de certificados para validar a confiança. O valor padrão é Falso.
/SourceUser: /su: {string} Para cenários de autenticação do SQL Server, define o usuário do SQL Server a ser utilizado para acessar o banco de dados de origem.
/TargetConnectionString: /tcs: {string} Especifica uma cadeia de conexão válida do SQL Server/do Azure para o banco de dados de destino. Se esse parâmetro for especificado, ele deverá ser usado exclusivamente entre todos os outros parâmetros de destino.
/TargetDatabaseName: /tdn: {string} Especifica uma substituição do nome do banco de dados que é o destino da ação do SqlPackage.
/TargetEncryptConnection: /tec: {Optional|Mandatory|Strict|True|False} Especifica se a criptografia SQL deve ser usada para a conexão de banco de dados de destino. O valor padrão é True.
/TargetHostNameInCertificate: /thnic: {string} Especifica o valor usado para validar o certificado TLS/SSL do SQL Server de destino quando a camada de comunicação é criptografada usando TLS.
/TargetPassword: /tp: {string} Para cenários de autenticação do SQL Server, define a senha a ser usada para acessar o banco de dados de destino.
/TargetServerName: /tsn: {string} Define o nome do servidor que hospeda o banco de dados de destino.
/TargetTimeout: /tt: {int} Especifica o tempo limite para estabelecer uma conexão com o banco de dados de destino em segundos. No Microsoft Entra ID, recomendamos que esse valor seja maior ou igual a 30 segundos.
/TargetTrustServerCertificate: /ttsc: {True|False} Especifica se o protocolo TLS será usado para criptografar a conexão de banco de dados de destino e ignorar a verificação da cadeia de certificados para validar a confiança. O valor padrão é Falso.
/TargetUser: /tu: {string} Para cenários de autenticação do SQL Server, define o usuário do SQL Server a ser utilizado para acessar o banco de dados de destino.
/TenantId: /tid: {string} Representa a ID do locatário ou o nome de domínio do Microsoft Entra. Essa opção é necessária para dar suporte a usuários convidados ou importados do Microsoft Entra e a contas Microsoft, como outlook.com, hotmail.com ou live.com. Se esse parâmetro for omitido, a ID de locatário padrão do Microsoft Entra ID será usada, supondo que o usuário autenticado seja um usuário nativo desse locatário. No entanto, nesse caso, não há suporte para usuários convidados ou importados e/ou contas da Microsoft hospedadas nesse Microsoft Entra ID, e a operação falhará.
Para saber mais, confira Autenticação universal com o Banco de Dados SQL e Azure Synapse Analytics (suporte do SSMS para MFA).
/ThreadMaxStackSize: /tmss: {int} Especifica o tamanho máximo em megabytes para o thread que executa a ação do SqlPackage. Essa opção só deve ser usada ao encontrar exceções de excedente de pilha que ocorrem durante a análise de instruções Transact-SQL muito grandes.
/UniversalAuthentication: /ua: {True|False} Especifica se a autenticação universal deve ser usada. Quando definido como True, o protocolo de autenticação interativo é ativado para dar suporte a MFA (autenticação multifator). Essa opção também pode ser usada para autenticação do Microsoft Entra sem MFA, usando um protocolo interativo que exige que o usuário digite seu nome de usuário e senha ou autenticação integrada (credenciais do Windows). Quando /UniversalAuthentication está definido como True, nenhuma autenticação do Microsoft Entra pode ser especificada em SourceConnectionString (/scs). Quando /UniversalAuthentication está definido como False, a autenticação do Microsoft Entra deve ser especificada em SourceConnectionString (/scs).
Para saber mais sobre autenticação universal do Active Directory, confira Autenticação universal com Banco de Dados SQL e Azure Synapse Analytics (suporte do SSMS para MFA).
/Variables: /v: {PropertyName}={Value} Especifica um par nome-valor para uma variável específica de ação;{NomeDaVariável}={Valor}. O arquivo DACPAC contém a lista de variáveis SQLCMD válidas. Ocorrerá um erro se não for fornecido um valor para cada variável.

Propriedades específicas da ação Publicar

Propriedade Valor Descrição
/p: AdditionalDeploymentContributorArguments=(STRING) Especifica argumentos adicionais de colaborador de implantação para os colaboradores de implantação. Essa propriedade deve ser uma lista de valores delimitada por ponto e vírgula.
/p: AdditionalDeploymentContributorPaths=(STRING) Especifica caminhos para carregar colaboradores de implantação adicionais. Essa propriedade deve ser uma lista de valores delimitada por ponto e vírgula.
/p: AdditionalDeploymentContributors=(STRING) Especifica colaboradores adicionais de implantação que devem ser executados quando o DACPAC é implantado. Essa propriedade deve ser uma lista de IDs ou nomes de colaborador de compilação totalmente qualificados delimitada por ponto e vírgula.
/p: AllowDropBlockingAssemblies=(BOOLEAN 'False') Essa propriedade é usada pela implantação de SqlClr para descartar os assemblies com bloqueio como parte do plano de implantação. Por padrão, os assemblies de bloqueio/referência bloquearão uma atualização de assembly se o assembly de referência precisar ser descartado.
/p: AllowExternalLanguagePaths=(BOOLEAN 'False') Permite que os caminhos de arquivo, se disponíveis, sejam usados para gerar instruções de linguagem externa.
/p: AllowExternalLibraryPaths=(BOOLEAN 'False') Permite que os caminhos de arquivo, se disponíveis, sejam usados para gerar instruções de biblioteca externa.
/p: AllowIncompatiblePlatform=(BOOLEAN 'False') Especifica se a ação deve continuar apesar de plataformas do SQL Server potencialmente incompatíveis.
/p: AllowTableRecreation=(BOOLEAN 'True') Especifica se a recriação de tabela deve ser permitida durante a implantação, se necessária para executar a alteração de esquema. A recriação de tabela recompila a tabela enquanto preserva os dados, mas pode ter um impacto significativo no desempenho.
/p: AllowUnsafeRowLevelSecurityDataMovement=(BOOLEAN 'False') Não bloqueie a movimentação de dados em uma tabela que tenha Segurança em Nível de Linha se essa propriedade estiver definida como true. O padrão é false.
/p: AzureSharedAccessSignatureToken=(STRING) Token SAS (assinatura de acesso compartilhado) do Azure. Confira SqlPackage para Azure Synapse Analytics e SqlPackage com dados em arquivos Parquet.
/p: AzureStorageBlobEndpoint=(STRING) Ponto de extremidade do Armazenamento de Blobs do Azure, confira SqlPackage para Azure Synapse Analytics e SqlPackage com dados em arquivos Parquet.
/p: AzureStorageContainer=(STRING) Contêiner do Armazenamento de Blobs do Azure, confira SqlPackage para Azure Synapse Analytics e SqlPackage com dados em arquivos Parquet.
/p: AzureStorageKey=(STRING) Chave de conta de armazenamento do Azure, confira SqlPackage para Azure Synapse Analytics e SqlPackage com dados em arquivos Parquet.
/p: AzureStorageRootPath=(STRING) Caminho raiz do armazenamento dentro do contêiner. Sem essa propriedade, o caminho padrão é servername/databasename/timestamp/. Confira SqlPackage para Azure Synapse Analytics e SqlPackage com dados em arquivos Parquet.
/p: BackupDatabaseBeforeChanges=(BOOLEAN 'False') Faz backups do banco de dados antes de implantar qualquer alteração. Essa propriedade não é aplicável ao Banco de Dados SQL do Azure.
/p: BlockOnPossibleDataLoss=(BOOLEAN 'True') Especifica que a operação será encerrada durante a etapa de validação de esquema se as alterações de esquema resultantes puderem causar perda de dados, inclusive devido à redução de precisão de dados ou a uma alteração de tipo de dados que requer uma operação de conversão. O valor padrão (True) faz com que a operação seja encerrada, independentemente de o banco de dados de destino conter dados. Uma execução com um valor False para BlockOnPossibleDataLoss ainda poderá falhar durante a execução do plano de implantação se os dados que não puderem ser convertidos para o novo tipo de coluna estiverem presentes no destino.
/p: BlockWhenDriftDetected=(BOOLEAN 'True') Especifica se deve bloquear a atualização de um banco de dados cujo esquema não mais corresponda seu registro ou não esteja registrado.
/p: CommandTimeout=(INT32 '60') Especifica o tempo limite do comando em segundos ao executar consultas com relação ao SQL Server.
/p: CommentOutSetVarDeclarations=(BOOLEAN 'False') Especifica se a declaração de variáveis SETVAR devem ser comentadas no script de publicação gerado. Você pode optar por fazer isso se planejar especificar os valores na linha de comando ao publicar usando uma ferramenta como SQLCMD.EXE.
/p: CompareUsingTargetCollation=(BOOLEAN 'False') Essa configuração dita como a ordenação do banco de dados é tratada durante a implantação; por padrão, a ordenação do banco de dados de destino será atualizada se não corresponder à ordenação especificada pela origem. Quando essa opção estiver configurada, a ordenação do banco de dados de destino (ou do servidor) deverá ser usada.
/p: CreateNewDatabase=(BOOLEAN 'False') Especifica se o banco de dados de destino deve ser atualizado ou removido e recriado quando um banco de dados é publicado.
/p: DatabaseEdition=({ Basic | Standard | Premium | DataWarehouse | GeneralPurpose | BusinessCritical | Hyperscale | Default } 'Default') Define a edição de um Banco de Dados SQL do Azure. Confira as Camadas de serviço do Banco de Dados SQL do Azure.
/p: DatabaseLockTimeout=(INT32 '60') Especifica o tempo limite de bloqueio do banco de dados em segundos ao executar consultas em SQL Server. Use -1 para esperar indefinidamente.
/p: DatabaseMaximumSize=(INT32 '0') Define o tamanho máximo, em GB, de um Banco de Dados SQL do Azure.
/p: DatabaseServiceObjective=(STRING) Define o nível de desempenho de um Banco de Dados SQL do Azure, assim como "P0" ou "S1".
/p: DeployDatabaseInSingleUserMode=(BOOLEAN 'False') Se for verdadeiro, o banco de dados será definido como o Modo de Usuário Único antes da implantação.
/p: DisableAndReenableDdlTriggers=(BOOLEAN 'True') Especifica se os gatilhos da DDL (linguagem de definição de dados) são desabilitados no início do processo de publicação e reabilitados no final da ação de publicação.
/p: DisableIndexesForDataPhase=(BOOLEAN 'True') Desabilite os índices antes de importar os dados para o SQL Server.
/p: DisableParallelismForEnablingIndexes=(BOOLEAN 'False') Não use paralelismo ao reconstruir índices ao importar dados para o SQL Server.
/p: DoNotAlterChangeDataCaptureObjects=(BOOLEAN 'True') Se for verdadeiro, os objetos do Change Data Capture não serão alterados.
/p: DoNotAlterReplicatedObjects=(BOOLEAN 'True') Especifica se os objetos que forem replicados são identificados durante a verificação.
/p: DoNotDropDatabaseWorkloadGroups=(BOOLEAN 'False') Quando esta configuração for false, os WorkloadGroups do Banco de Dados no banco de dados de destino que não estiverem definidos na origem serão removidos durante a implantação.
/p: DoNotDropObjectType=(STRING) Um tipo de objeto que não deve ser descartado quando DropObjectsNotInSource é verdadeiro. Os nomes de tipo de objeto válidos são 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. Essa propriedade pode ser especificada várias vezes para indicar várias opções.
/p: DoNotDropObjectTypes=(STRING) Uma lista separada por ponto e vírgula de tipos de objeto que não devem ser removidos quando DropObjectsNotInSource é true. Os nomes de tipo de objeto válidos são 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') Quando esta configuração for false, os WorkloadClassifiers no banco de dados de destino que não estiverem definidos na origem serão removidos durante a implantação.
/p: DoNotEvaluateSqlCmdVariables=(BOOLEAN 'True') Especifica se as variáveis SQLCMD não devem ser substituídas por valores
/p: DropConstraintsNotInSource=(BOOLEAN 'True') Especifica se as restrições que não existem no arquivo do instantâneo de banco de dados (.dacpac) serão removidas do banco de dados de destino quando você publicar em um banco de dados.
/p: DropDmlTriggersNotInSource=(BOOLEAN 'True') Especifica se os gatilhos DML que não existem no arquivo do instantâneo de banco de dados (.dacpac) serão removidos do banco de dados de destino quando você publica em um banco de dados.
/p: DropExtendedPropertiesNotInSource=(BOOLEAN 'True') Especifica se as propriedades estendidas que não existem no arquivo de instantâneo do banco de dados (.dacpac) serão removidas do banco de dados de destino quando você publicar em um banco de dados.
/p: DropIndexesNotInSource=(BOOLEAN 'True') Especifica se os índices que não existem no arquivo do instantâneo de banco de dados (.dacpac) serão removidos do banco de dados de destino quando você publicar em um banco de dados.
/p: DropObjectsNotInSource=(BOOLEAN 'False') Especifica se os objetos que não existem no arquivo do instantâneo de banco de dados (.dacpac) serão removidos do banco de dados de destino quando você publicar em um banco de dados. Esse valor tem precedência sobre DropExtendedProperties.
/p: DropPermissionsNotInSource=(BOOLEAN 'False') Especifica se as permissões que não existem no arquivo do instantâneo de banco de dados (.dacpac) serão removidas do banco de dados de destino quando você publicar atualizações em um banco de dados.
/p: DropRoleMembersNotInSource=(BOOLEAN 'False') Especifica se os membros de função que não estão definidos no arquivo do instantâneo de banco de dados (.dacpac) serão removidos do banco de dados de destino quando você publicar atualizações em um banco de dados.
/p: DropStatisticsNotInSource=(BOOLEAN 'True') Especifica se as estatísticas que não existem no arquivo de instantâneo do banco de dados (.dacpac) serão removidas do banco de dados de destino quando você publicar em um banco de dados.
/p: EnclaveAttestationProtocol=(STRING) Especifica um protocolo de atestado a ser usado com base em enclave Always Encrypted.
/p: EnclaveAttestationUrl=(STRING) Especifica a URL de atestado de enclave (um ponto de extremidade de serviço de atestado) a ser usada com base em enclave Always Encrypted.
/p: ExcludeObjectType=(STRING) Um tipo de objeto que deve ser ignorado durante a implantação. Os nomes de tipo de objeto válidos são 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. Essa propriedade pode ser especificada várias vezes para indicar várias opções.
/p: ExcludeObjectTypes=(STRING) Uma lista, delimitada por ponto e vírgula, de tipos de objetos que devem ser ignorados durante a implantação. Os nomes de tipo de objeto válidos são 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') Automaticamente fornece um valor padrão ao atualizar uma tabela que contém dados com uma coluna que não permite valores nulos.
/p: HashObjectNamesInLogs=(BOOLEAN 'False') Especifica se todos os nomes de objetos nos logs devem ser substituídos por um valor de hash aleatório.
/p: IgnoreAnsiNulls=(BOOLEAN 'True') Especifica se diferenças na configuração ANSI NULLS deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreAuthorizer=(BOOLEAN 'False') Especifica se diferenças no Autorizador deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreColumnCollation=(BOOLEAN 'False') Especifica se diferenças nas ordenações de coluna deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreColumnOrder=(BOOLEAN 'False') Especifica se as diferenças na ordem das colunas da tabela devem ser ignoradas ou atualizadas quando você publica em um banco de dados.
/p: IgnoreComments=(BOOLEAN 'False') Especifica se diferenças nos comentários deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreCryptographicProviderFilePath=(BOOLEAN 'True') Especifica se as diferenças no caminho do arquivo para o provedor de criptografia deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreDatabaseWorkloadGroups=(BOOLEAN 'False') Especifica se os grupos de cargas de trabalho que existem no destino durante a implantação são excluídos. Nenhum Grupo de Carga de Trabalho de Banco de Dados será adicionado, modificado ou descartado.
/p: IgnoreDdlTriggerOrder=(BOOLEAN 'False') Especifica se diferenças na ordem de gatilhos DDL (linguagem de definição de dados) deverão ser ignoradas ou atualizadas quando você publicar em um servidor ou banco de dados.
/p: IgnoreDdlTriggerState=(BOOLEAN 'False') Especifica se diferenças no estado habilitado ou desabilitado de gatilhos DDL (linguagem de definição de dados) deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreDefaultSchema=(BOOLEAN 'False') Especifica se diferenças no esquema padrão deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreDmlTriggerOrder=(BOOLEAN 'False') Especifica se diferenças na ordem de gatilhos DML (linguagem de manipulação de dados) deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreDmlTriggerState=(BOOLEAN 'False') Especifica se diferenças no estado habilitado ou desabilitado de gatilhos DML deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreExtendedProperties=(BOOLEAN 'False') Especifica se diferenças nas propriedades estendidas deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreFileAndLogFilePath=(BOOLEAN 'True') Especifica se diferenças nos caminhos para arquivos e arquivos de log deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreFilegroupPlacement=(BOOLEAN 'True') Especifica se diferenças no posicionamento de objetos em FILEGROUPs deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreFileSize=(BOOLEAN 'True') Especifica se diferenças nos tamanhos de arquivos deverão ser ignoradas ou se um aviso deverá ser emitido quando você publicar em um banco de dados.
/p: IgnoreFillFactor=(BOOLEAN 'True') Especifica se diferenças no fator de preenchimento de armazenamento de índice deverão ser ignoradas ou se um aviso deverá ser emitido quando você publicar em um banco de dados.
/p: IgnoreFullTextCatalogFilePath=(BOOLEAN 'True') Especifica se diferenças no caminho do arquivo do catálogo de texto completo deverão ser ignoradas ou se um aviso deverá ser emitido quando você publicar em um banco de dados.
/p: IgnoreIdentitySeed=(BOOLEAN 'False') Especifica se diferenças na semente de uma coluna de identidade deverão ser ignoradas ou atualizadas quando você publicar atualizações em um banco de dados.
/p: IgnoreIncrement=(BOOLEAN 'False') Especifica se diferenças no incremento de uma coluna de identidade deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreIndexOptions=(BOOLEAN 'False') Especifica se diferenças nas opções de índice deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreIndexPadding=(BOOLEAN 'True') Especifica se diferenças nas opções de preenchimento do índice deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreKeywordCasing=(BOOLEAN 'True') Especifica se diferenças no uso de maiúsculas e minúsculas em palavras-chave deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreLockHintsOnIndexes=(BOOLEAN 'False') Especifica se diferenças no uso de dicas de bloqueio em índices deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreLoginSids=(BOOLEAN 'True') Especifica se diferenças no número SID (identificação de segurança) deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreNotForReplication=(BOOLEAN 'False') Especifica se as configurações que não sejam para replicação deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreObjectPlacementOnPartitionScheme=(BOOLEAN 'True') Especifica se o posicionamento de um objeto em um esquema de partição deverá ser ignorado ou atualizado quando você publicar em um banco de dados.
/p: IgnorePartitionSchemes=(BOOLEAN 'False') Especifica se diferenças em esquemas de partição e funções deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnorePermissions=(BOOLEAN 'False') Especifica se diferenças nas permissões deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreQuotedIdentifiers=(BOOLEAN 'True') Especifica se diferenças na configuração de identificadores entre aspas deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreRoleMembership=(BOOLEAN 'False') Especifica se as diferenças nas associações de logons à função devem ser ignoradas ou atualizadas quando você publica em um banco de dados.
/p: IgnoreRouteLifetime=(BOOLEAN 'True') Especifica se diferenças na quantidade de tempo que o SQL Server retém a rota na tabela de roteamento deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreSemicolonBetweenStatements=(BOOLEAN 'True') Especifica se diferenças nos pontos e vírgulas entre instruções T-SQL serão ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreSensitivityClassifications=(BOOLEAN 'False') Especifica se as classificações de confidencialidade de dados em colunas devem ser ignoradas ao comparar modelos de esquema. Isso só funciona para classificações adicionadas com a sintaxe ADD SENSITIVITY CLASSIFICATION introduzida no SQL 2019.
/p: IgnoreTableOptions=(BOOLEAN 'False') Especifica se diferenças nas opções de tabela serão ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreTablePartitionOptions=(BOOLEAN 'False') Especifica se diferenças nas opções de partição de tabela serão ignoradas ou atualizadas quando você publicar em um banco de dados. Essa opção se aplica somente aos bancos de dados de pool de SQL dedicados do Azure Synapse Analytics.
/p: IgnoreUserSettingsObjects=(BOOLEAN 'False') Especifica se diferenças nos objetos de configurações do usuário serão ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreWhitespace=(BOOLEAN 'True') Especifica se diferenças de espaço em branco serão ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreWithNocheckOnCheckConstraints=(BOOLEAN 'False') Especifica se diferenças no valor da cláusula WITH NOCHECK para restrições de verificação serão ignoradas ou atualizadas quando você publicar.
/p: IgnoreWithNocheckOnForeignKeys=(BOOLEAN 'False') Especifica se diferenças no valor da cláusula WITH NOCHECK para chaves estrangeiras serão ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: IgnoreWorkloadClassifiers=(BOOLEAN 'False') Especifica se os classificadores de carga de trabalho que existem no destino durante a implantação serão excluídos.
/p: IncludeCompositeObjects=(BOOLEAN 'False') Inclui todos os elementos compostos com o mesmo banco de dados como parte de uma única operação de publicação.
/p: IncludeTransactionalScripts=(BOOLEAN 'False') Especifica se instruções transacionais deverão ser usadas quando possível quando você publicar em um banco de dados.
/p: IsAlwaysEncryptedParameterizationEnabled=(BOOLEAN 'False') Habilita a parametrização de variáveis de colunas Always Encrypted em scripts de pré/pós-implantação.
/p: LongRunningCommandTimeout=(INT32 '0') Especifica o tempo limite do comando de execução prolongada em segundos ao executar consultas com relação ao SQL Server. Use 0 para esperar indefinidamente.
/p: NoAlterStatementsToChangeClrTypes=(BOOLEAN 'False') Especifica se a publicação sempre deverá cancelar e recriar um assembly se houver uma diferença em vez de emitir uma instrução ALTER ASSEMBLY.
/p: PerformIndexOperationsOnline=(BOOLEAN 'False') Especifica se as operações de índice devem ser executadas online durante a implantação.
/p: PopulateFilesOnFileGroups=(BOOLEAN 'True') Especifica se um novo arquivo também será criado quando um novo FileGroup for criado no banco de dados de destino.
/p: PreserveIdentityLastValues=(BOOLEAN 'False') Especifica se os últimos valores das colunas de identidade devem ser preservados durante a implantação.
/p: RebuildIndexesOfflineForDataPhase=(BOOLEAN 'False') Recompilar índices offline após a importação de dados.
/p: RegisterDataTierApplication=(BOOLEAN 'False') Especifica se o esquema está registrado com o servidor de banco de dados.
/p: RestoreSequenceCurrentValue=(BOOLEAN 'True') Especifica se o valor atual do objeto de sequência deve ser implantado com o arquivo dacpac. O valor padrão é True.
/p: RunDeploymentPlanExecutors=(BOOLEAN 'False') Especifica se os colaboradores de DeploymentPlanExecutor devem ser executados quando outras operações forem executadas.
/p: ScriptDatabaseCollation=(BOOLEAN 'False') Especifica se diferenças na ordenação do banco de dados deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: ScriptDatabaseCompatibility=(BOOLEAN 'False') Especifica se diferenças na compatibilidade do banco de dados deverão ser ignoradas ou atualizadas quando você publicar em um banco de dados.
/p: ScriptDatabaseOptions=(BOOLEAN 'True') Especifica se as propriedades do banco de dados de destino devem ser definidas ou atualizadas como parte da ação de publicação.
/p: ScriptDeployStateChecks=(BOOLEAN 'False') Especifica se as instruções são geradas no script de publicação para verificar se o nome do banco de dados e o nome do servidor correspondem aos nomes especificados no projeto de banco de dados.
/p: ScriptFileSize=(BOOLEAN 'False') Controla se o tamanho é especificado ao adicionar um arquivo a um grupo de arquivos.
/p: ScriptNewConstraintValidation=(BOOLEAN 'True') No final da publicação, todas as restrições serão verificadas em conjunto, evitando erros de dados causados por uma verificação ou restrição de chave estrangeira no meio da publicação. Se definido como False, as restrições serão publicadas sem verificar os dados correspondentes.
/p: ScriptRefreshModule=(BOOLEAN 'True') Inclua instruções de atualização no fim do script de publicação.
/p: Storage=({File|Memory}) Especifica como os elementos são armazenados ao criar o modelo de banco de dados. Por razões de desempenho, o padrão é InMemory. Para bancos de dados grandes, o armazenamento de backup de arquivos pode ser necessário e só está disponível para a versão do .NET Framework do SqlPackage.
/p: TreatVerificationErrorsAsWarnings=(BOOLEAN 'False') Especifica se os erros encontrados durante a verificação de publicação devem ser tratados como avisos. A verificação é executada em relação ao plano de implantação gerado antes de o plano ser executado em relação ao banco de dados de destino. A verificação do plano detecta problemas, como a perda de objetos apenas de destino (por exemplo, índices), que devem ser cancelados para fazer uma alteração. A verificação também detectará situações em que existem dependências (como tabelas ou exibições) devido a uma referência a um projeto composto, mas não existem no banco de dados de destino. Você pode optar por fazer isso para obter uma lista completa de todos os problemas, em vez de interromper a ação de publicação no primeiro erro.
/p: UnmodifiableObjectWarnings=(BOOLEAN 'True') Especifica se devem ser gerados avisos quando diferenças forem localizadas em objetos que não podem ser modificados, por exemplo, se o tamanho ou os caminhos de arquivo forem diferentes para um arquivo.
/p: VerifyCollationCompatibility=(BOOLEAN 'True') Especifica se a compatibilidade de ordenação é verificada.
/p: VerifyDeployment=(BOOLEAN 'True') Especifica se devem ser executadas verificações antes da publicação, o que interromperá a ação de publicação se houver problemas que possam bloquear uma publicação bem-sucedida. Por exemplo, sua ação de publicação poderá ser interrompida se você tiver chaves estrangeiras no banco de dados de destino que não existem no projeto de banco de dados, o que causará erros ao publicar.

Variáveis SQLCMD

A tabela a seguir descreve o formato da opção que pode ser usada para substituir o valor de uma variável de comando SQL (sqlcmd) usada durante uma ação de publicação. Os valores da variável especificados na linha de comando substituem outros valores atribuídos à variável (por exemplo, em um perfil de publicação).

Parâmetro Padrão Descrição
/v:{PropertyName}={Value} Especifica um par nome-valor para uma variável específica de ação; {NomeDaVariável}={Valor}. O arquivo DACPAC contém a lista de variáveis SQLCMD válidas. Ocorrerá um erro se não for fornecido um valor para cada variável.

Próximas etapas