Partilhar via


SqlPackage Exportar parâmetros e propriedades

A ação SqlPackage Export exporta um banco de dados conectado para um arquivo BACPAC (.bacpac). Por padrão, os dados de todas as tabelas serão incluídos no arquivo .bacpac. Opcionalmente, você pode especificar apenas um subconjunto de tabelas para as quais exportar dados. A ação Exportar faz parte da funcionalidade de portabilidade de banco de dados do SqlPackage. Para que uma exportação seja transacionalmente consistente, você deve garantir que nenhuma atividade de gravação esteja ocorrendo durante a exportação ou que esteja exportando de uma cópia transacionalmente consistente do seu banco de dados.

Note

Embora o Microsoft Entra ID seja o novo nome para o Azure Ative Directory (Azure AD), para evitar a interrupção de ambientes existentes, o Azure AD ainda permanece 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.

Note

A exportação SqlPackage tem melhor desempenho para bancos de dados com menos de 200 GB. Para bancos de dados maiores, você pode querer otimizar a operação usando as propriedades disponíveis neste artigo e dicas em Solução de problemas com SqlPackage ou, alternativamente, obter a portabilidade do banco de dados por meio de dados em arquivos parquet.

Command-line syntax

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

SqlPackage /Action:Export {parameters} {properties}

Required parameters

A ação Exportar requer um TargetFile parâmetro para especificar o nome e o local do arquivo .bacpac a ser criado. Esse local deve ser gravável pelo usuário que executa o comando e a pasta que o contém deve existir.

A ação Exportar também requer que uma fonte de banco de dados seja especificada, seja por meio de uma combinação de:

  • Parâmetros SourceServerName e SourceDatabaseName, ou
  • SourceConnectionString parâmetro.

Examples

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

Parâmetros para a ação Exportar

Parameter Short Form Value Description
/AccessToken: /at: {string} Especifica o token de autenticação a ser usado ao conectar-se ao banco de dados de destino.
/Action: /a: Export Especifica a ação a ser executada.
/AzureCloudConfig: /acc: {string} Especifica os pontos de extremidade personalizados para ligação ao Microsoft Entra ID no formato: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}".
/Diagnostics: /d: {True|False} Especifica se o log de diagnóstico é enviado para o console. A definição padrão é 'False'.
/DiagnosticsFile: /df: {string} Especifica um arquivo para armazenar logs de diagnóstico.
/DiagnosticsLevel: /dl {None|Off|Critical|Error|Warning|Information|Verbose} Especifica os níveis das mensagens de rastreamento filtradas no arquivo de diagnóstico
/MaxParallelism: /mp: {int} Especifica o grau de paralelismo para operações simultâneas em execução em um banco de dados. O valor padrão é 8.
/OverwriteFiles: /of: {True|False} Especifica se SqlPackage deve substituir arquivos existentes. Especificar false faz com que SqlPackage anule a ação se um arquivo existente for encontrado. O valor padrão é True.
/Properties: /p: {PropertyName}={Value} Especifica um par de valor de nome para uma propriedade específica da ação; {PropertyName}={Valor}.
/Quiet: /q: {True|False} Especifica se os comentários detalhados são suprimidos. A definição padrão é 'False'.
/SourceConnectionString: /scs: {string} Especifica uma cadeia de conexão SQL Server/Azure válida para o banco de dados de origem. Se este parâmetro for especificado, deve ser utilizado exclusivamente para 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 deve usar TLS para encriptar a ligação à base de dados de origem e ignorar a verificação da cadeia de certificados para validar a confiança. O valor padrão é False.
/SourceUser: /su: {string} Para cenários de autenticação do SQL Server, define o usuário do SQL Server a ser usado 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 este parâmetro for utilizado, nenhum outro parâmetro-alvo será válido. Este parâmetro será inválido para ações que ofereçam suporte apenas a destinos de banco de dados.
/TenantId: /tid: {string} Representa o ID do locatário ou nome de domínio do Microsoft Entra. Esta opção é necessária para suportar utilizadores convidados ou importados do Microsoft Entra, bem como contas Microsoft como outlook.com, hotmail.com ou live.com. Se esse parâmetro for omitido, a ID de locatário padrão para a ID do Microsoft Entra será usada, supondo que o usuário autenticado seja um usuário nativo para esse locatário. No entanto, neste caso, quaisquer utilizadores convidados ou importados e/ou contas Microsoft alojados neste ID do Microsoft Entra não são suportados e a operação falhará.
Para obter mais informações, consulte Autenticação universal com o Banco de dados SQL e Azure Synapse Analytics (suporte SSMS para MFA).
/ThreadMaxStackSize: /tmss: {int} Especifica o tamanho máximo em megabytes para o thread que executa a ação SqlPackage. Esta opção deve ser usada apenas quando encontrar exceções de estouro de pilha (stack overflow) que ocorrem ao analisar instruções Transact-SQL muito extensas.
/UniversalAuthentication: /ua: {True|False} Especifica se a autenticação universal deve ser usada. Quando definido como True, o protocolo de autenticação interativo é ativado suportando MFA. Esta 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 insira seu nome de usuário e senha ou autenticação integrada (credenciais do Windows). Quando /UniversalAuthentication é definido como True, nenhuma autenticação do Microsoft Entra pode ser especificada em SourceConnectionString (/scs). Quando /UniversalAuthentication é definido como False, a autenticação do Microsoft Entra deve ser especificada em SourceConnectionString (/scs).
Para obter mais informações, consulte Autenticação universal com o Banco de dados SQL e Azure Synapse Analytics (suporte SSMS para MFA).

Propriedades específicas da ação Exportar

Property Value Description
/p: CommandTimeout=(INT32 '60') Especifica o tempo limite do comando em segundos ao executar consultas no 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 no SQLServer. Use -1 para aguardar indefinidamente.
/p: HashObjectNamesInLogs=(BOOLEAN 'False') Especifica se todos os nomes de objeto em logs devem ser substituídos por um valor de hash aleatório.
/p: IgnoreIndexesStatisticsOnEnclaveEnabledColumns=(BOOLEAN 'False') Especifica se os índices ou estatísticas em colunas criptografadas usando criptografia aleatória e chaves de criptografia de coluna habilitadas para enclave devem ser ignorados (não incluídos no bacpac gerado). Por padrão (false), qualquer índice ou 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 longa execução em segundos ao executar consultas no SQL Server. Use 0 para aguardar indefinidamente.
/p: Storage=({File|Memory}) Especifica o tipo de armazenamento de suporte para o modelo de esquema usado durante a extração. 'Memória' é o padrão para a versão .NET Core do SqlPackage. 'File' só está disponível como padrão para a versão .NET Framework do SqlPackage.
/p: TableData=(STRING) Indica a tabela 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: schema_name.table_identifier. Esta propriedade pode ser especificada várias vezes para indicar várias opções.
/p: TargetEngineVersion=({Default|Latest|V11|V12} 'Latest') Esta 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 alternativo usado para armazenar dados da tabela em buffer antes de serem gravados no arquivo do pacote. O espaço necessário neste local 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 são executadas no dacpac ou bacpac.
/p: VerifyFullTextDocumentTypesSupported=(BOOLEAN 'False') Especifica se os tipos de documento de texto completo com suporte para o Banco de Dados SQL do Microsoft Azure v12 devem ser verificados.

Next Steps