SqlPackage.exe

SqlPackage.exe é um utilitário de linha de comando que automatiza as seguintes tarefas de desenvolvimento de banco de dados expondo algumas das APIs públicas da DacFx (Estrutura do Aplicativo da Camada de Dados):

  • Versão: retorna o número de build do aplicativo SqlPackage. Adicionada na versão 18.6.

  • Extrair: cria um arquivo (.dacpac) do aplicativo da camada de dados que contém um esquema ou um esquema e os dados do usuário de um banco de dados SQL conectado.

  • Publicar: atualiza um esquema de banco de dados incrementalmente para que corresponda ao esquema de um arquivo .dacpac de origem. Se o banco de dados não existir no servidor, a operação de publicação irá criá-lo. Caso contrário, um banco de dados existente é atualizado.

  • Export: exporta um banco de dados SQL conectado, incluindo um esquema do banco de dados e dados do usuário para um arquivo BACPAC (.bacpac).

  • Import: importa os dados do esquema e da tabela de um arquivo BACPAC em um novo banco de dados de usuário.

  • DeployReport: cria um relatório XML das alterações que teriam sido feitas por uma ação de publicação.

  • DriftReport: cria um relatório XML das alterações que teriam sido feitas a um banco de dados registrado desde o último registro.

  • Script: cria um script de atualização incremental Transact-SQL que atualiza o esquema de um destino para que corresponda ao esquema de origem.

A ferramenta linha de comando do SqlPackage.exe permite que você especifique essas ações junto com parâmetros e propriedades específicos da ação.

Baixe a versão mais recente . Para obter detalhes sobre a versão mais recente, confira as notas sobre a versão.

Sintaxe da linha de comando

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

SqlPackage {parameters} {properties} {SQLCMD variables}

Códigos de saída

Os comandos do SqlPackage retornam os seguintes códigos de saída:

  • 0 = êxito
  • diferente de zero = falha

Exemplo de uso

Outros exemplos estão disponíveis nas páginas de ação individuais.

Criando um arquivo .dacpac do esquema de banco de dados atual:

sqlpackage.exe /TargetFile:"C:\sqlpackageoutput\output_current_version.dacpac" /Action:Extract /SourceServerName:"." /SourceDatabaseName:"Contoso.Database"

Parâmetros

Alguns parâmetros são compartilhados entre as ações SqlPackage. Abaixo está uma tabela que resume os parâmetros. Para obter mais informações, clique nas páginas de ação específicas.

Parâmetro Forma abreviada Extrair Publicar Exportar Importaçãoação DeployReport DriftReport Script
/AccessToken: /at x x x x x x x
/ClientId: /cid x
/DeployScriptPath: /dsp x x
/DeployReportPath: /drp x x
/Diagnostics: /d x x x x x x x
/DiagnosticsFile: /df x x x x x x x
/MaxParallelism: /mp x x x x x x x
/OutputPath: /op x x x
/OverwriteFiles: /of x x x x x x
/Profile: /pr x x x
/Properties: /p x x x x x x
/Quiet: /q x x x x x x x
/Secret: /secr x
/SourceConnectionString: /scs x x x x x
/SourceDatabaseName: /sdn x x x x x
/SourceEncryptConnection: /sec x x x x x
/SourceFile: /sf x x x x
/SourcePassword: /sp x x x x x
/SourceServerName: /ssn x x x x x
/SourceTimeout: /st x x x x x
/SourceTrustServerCertificate: /stsc x x x x x
/SourceUser: /su x x x x x
/TargetConnectionString: /tcs x x x x
/TargetDatabaseName: /tdn x x x x x
/TargetEncryptConnection: /tec x x x x x
/TargetFile: /tf x x x x
/TargetPassword: /tp x x x x x
/TargetServerName: /tsn x x x x x
/TargetTimeout: /tt x x x x x
/TargetTrustServerCertificate: /ttsc x x x x x
/TargetUser: /tu x x x x x
/TenantId: /tid x x x x x x x
/UniversalAuthentication: /ua x x x x x x x
/Variables: /v x x

Propriedades

As ações do SqlPackage dão suporte a um grande número de propriedades para modificar o comportamento padrão de uma ação. Para obter mais informações, clique nas páginas de ação específicas.

Comandos do utilitário

Versão

Exibe a versão do sqlpackage como um número de build. Pode ser usada em prompts interativos, bem como em pipelines automatizados.

sqlpackage.exe /Version

Ajuda

Você pode exibir informações de uso do SqlPackage usando /? ou /help:True.

sqlpackage.exe /?

Para informações de parâmetro e propriedade específicas de uma determinada ação, use o parâmetro de ajuda além do parâmetro dessa ação.

sqlpackage.exe /Action:Publish /?

Arquivos temporários

Durante as operações do SqlPackage, os dados da tabela são gravados em arquivos temporários antes da compactação ou após a descompactação. Para bancos de dados grandes, esses arquivos temporários podem ocupar uma quantidade significativa de espaço em disco, mas a localização pode ser especificada. As operações de exportação e extração incluem uma propriedade opcional a ser especificada, /p:TempDirectoryForTableData, para substituir o valor padrão do SqlPackage.

O valor padrão é estabelecido pelo GetTempPath no SqlPackage.

Para o Windows, as seguintes variáveis de ambiente são verificadas na seguinte ordem e o primeiro caminho que existe é usado:

  1. O caminho especificado pela variável de ambiente TMP.
  2. O caminho especificado pela variável de ambiente TEMP.
  3. O caminho especificado pela variável de ambiente USERPROFILE.
  4. O diretório do Windows.

Para Linux e macOS, se o caminho não for especificado na variável de ambiente TMPDIR, o caminho padrão /tmp/ será usado.

SqlPackage e usuários de banco de dados

Os usuários do banco de dados independente são incluídos em operações do SqlPackage. No entanto, a parte de senha da definição é definida como uma cadeia de caracteres gerada aleatoriamente pelo SqlPackage, o valor existente não é transferido. É recomendável que a senha do novo usuário seja redefinida para um valor seguro após a importação de um .bacpac ou a implantação de um .dacpac. Em um ambiente automatizado, os valores de senha podem ser recuperados de um repositório de chaves seguro, como o Azure Key Vault, em uma etapa após o SqlPackage.

Suporte

A biblioteca DacFx e a ferramenta da CLI do SqlPackage adotaram a Política de Ciclo de Vida Moderno da Microsoft. Todas as atualizações de segurança, correções e novos recursos serão lançados apenas na versão de ponto mais recente da versão principal. Manter suas instalações DacFx ou SqlPackage na versão atual ajuda a garantir que você receba todas as correções de bug aplicáveis em tempo hábil.

Ofertas de SQL com suporte

O SqlPackage e o DacFx dão suporte a todas as versões do SQL compatíveis no momento do lançamento da versão do SqlPackage/DacFx. Por exemplo, um lançamento do SqlPackage em 14 de janeiro de 2022 dá suporte a todas as versões com suporte do SQL em 14 de janeiro de 2022. Para saber mais sobre as políticas de suporte do SQL, confira a política de suporte do SQL.

Próximas etapas