Propriedades e parâmetros da ação Export do SqlPackage

A ação Export do SqlPackage exporta um banco de dados conectado a um arquivo BACPAC (.bacpac). Por padrão, os dados de todas as tabelas serão incluídos no arquivo .bacpac. Como opção, você pode especificar apenas um subconjunto das tabelas para o qual exportará dados. A validação para a ação Exportar garante a compatibilidade do Banco de Dados SQL do Azure para o banco de dados de destino completo, mesmo que esteja especificado um subconjunto das tabelas para a exportação.

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:Export {parameters} {properties}

Observação

A ação export do SqlPackage tem um melhor desempenho em bancos de dados com menos de 200 GB. Para bancos de dados maiores, o ideal é otimizar a operação usando as propriedades disponíveis neste artigo e as dicas apresentadas em Solução de problemas com o SqlPackage.

Exemplos

# example export from Azure SQL Database using SQL authentication and a connection string
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"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 export using short form parameter names, skips schema validation
SqlPackage /a:Export /ssn:"{yourserver}.database.windows.net,1433" /sdn:"AdventureWorksLT" /su:"sqladmin" \
    /sp:"{your_password}" /tf:"C:\AdventureWorksLT.bacpac" /p:VerifyExtraction=False

# example export using Microsoft Entra managed identity
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"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 export connecting using Microsoft Entra username and password
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"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 export connecting using Microsoft Entra universal authentication
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" /UniversalAuthentication:True \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# example export 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:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"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:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Parâmetros da ação Export

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: Exportação 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}".
/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.
/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.
/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.
/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.
/TargetFile: /tf: {string} Especifica um arquivo de destino (ou seja, um arquivo .dacpac) a ser usado como destino da ação em vez de um banco de dados. Se esse parâmetro for usado, nenhum outro parâmetro de destino será válido. Esse parâmetro será inválido para ações que dão suporte apenas a destinos de banco de dados.
/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, confira Autenticação universal com o Banco de Dados SQL e Azure Synapse Analytics (suporte do SSMS para MFA).

Propriedades específicas da ação Exportar

Propriedade Valor Descrição
/p: CommandTimeout=(INT32 '60') Especifica o tempo limite do comando em segundos ao executar consultas com relação ao SQL Server.
/p: CompressionOption=({Normal|Maximum|Fast|SuperFast|NotCompressed} 'Normal') Especifica o tipo de compactação.
/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: HashObjectNamesInLogs=(BOOLEAN 'False') Especifica se todos os nomes de objetos nos logs devem ser substituídos por um valor de hash aleatório.
/p: IgnoreIndexesStatisticsOnEnclaveEnabledColumns=(BOOLEAN 'False') Especifica se os índices ou as estatísticas em colunas criptografadas usando criptografia aleatória e chaves de criptografia de coluna habilitadas para enclave devem ser ignoradas (não incluídas no bacpac gerado). Por padrão (false), qualquer índice ou uma estatística em uma coluna criptografada usando criptografia aleatória e uma chave de criptografia de coluna habilitada para enclave bloqueará a ação de exportaçã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: Storage=({File|Memory}) Especifica o tipo de armazenamento de backup para o modelo de esquema usado durante a extração. "Memory" é o padrão para a versão do .NET Core do SqlPackage. "File" só está disponível e é o padrão para a versão do .NET Framework do SqlPackage.
/p: TableData=(STRING) Indica a tabela a partir da qual os dados serão extraídos. Especifique o nome da tabela com ou sem os colchetes ao redor das partes do nome no seguinte formato: nome_esquema.identificador_tabela. Essa propriedade pode ser especificada várias vezes para indicar várias opções.
/p: TargetEngineVersion=({Default|Latest|V11|V12} 'Latest') Essa propriedade foi preterida e o uso não é recomendado. Especifica a versão esperada do mecanismo de destino do Banco de Dados SQL do Azure.
/p: TempDirectoryForTableData=(STRING) Especifica um diretório temporário usado para armazenar em buffer dados da tabela antes de gravá-los no arquivo do pacote. O espaço necessário nessa localização pode ser grande e é relativo ao tamanho total do banco de dados.
/p: VerifyExtraction=(BOOLEAN 'True') Especifica se o modelo de esquema extraído deve ser verificado. Se definido como true, as regras de validação de esquema serão executadas no dacpac ou bacpac.
/p: VerifyFullTextDocumentTypesSupported=(BOOLEAN 'False') Especifica se os tipos de documento de texto completo compatíveis com o Banco de Dados SQL do Microsoft Azure versão 12 devem ser verificados.

Próximas etapas