Partilhar via


Parâmetros e propriedades de importação do SqlPackage

A ação Importação SqlPackage importa o esquema e os dados da tabela de um arquivo BACPAC (.bacpac) para um banco de dados novo ou vazio no SQL Server ou no Banco de Dados SQL do Azure. No momento da operação de importação para um banco de dados existente, o banco de dados de destino não pode conter nenhum objeto de esquema definido pelo usuário. Como alternativa, um novo banco de dados pode ser criado pela ação de importação quando o usuário autenticado tiver permissões de criação de banco de dados. A ação Importar faz parte da funcionalidade de portabilidade de banco de dados do SqlPackage.

Observação

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.

Observação

A importação SqlPackage tem o 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.

Sintaxe da linha de comando

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

SqlPackage /Action:Import {parameters} {properties}

Parâmetros necessários

A ação Importar requer um SourceFile parâmetro para especificar o nome e o local do arquivo .bacpac que contém os objetos e dados do banco de dados.

A ação Exportar requer uma conexão de destino onde um novo banco de dados será criado por SqlPackage ou onde um banco de dados em branco está presente. Isto é especificado através de uma combinação de:

  • Parâmetros TargetServerName e TargetDatabaseName, ou
  • TargetConnectionString parâmetro.

Exemplos

# example import to Azure SQL Database using SQL authentication and a connection string
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /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 import using short form parameter names
SqlPackage /a:Import /tsn:"{yourserver}.database.windows.net,1433" /tdn:"AdventureWorksLT" /tu:"sqladmin" \
    /tp:"{your_password}" /sf:"C:\AdventureWorksLT.bacpac"

# example import using Microsoft Entra managed identity
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /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 import connecting using Microsoft Entra username and password
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /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 import connecting using Microsoft Entra universal authentication
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" /UniversalAuthentication:True \
    /TargetConnectionString:"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 Importar

Parâmetro Formulário Abreviado Valor Descrição
/AccessToken: /at: {string} Especifica o token de autenticação a ser usado ao conectar-se ao banco de dados de destino.
/Ação: /a: Importação 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}".
/Diagnóstico: /d: {Verdadeiro|Falso} Especifica se o log de diagnóstico é enviado para o console. A definição padrão é 'False'.
/FicheiroDeDiagnóstico: /df: {string} Especifica um arquivo para armazenar logs de diagnóstico.
/DiagnosticsLevel: /dl {Nenhuma|Desligado|Crítica|Erro|Atenção|Informação|Verbose} Especifica os níveis das mensagens de rastreamento filtradas no arquivo de diagnóstico
/DiagnosticsPackageFile: /dpf {string} Especifica um arquivo para armazenar o pacote 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.
/ModelFilePath: /MFP: {string} Especifica o caminho do arquivo para substituir o model.xml no arquivo de origem. O uso dessa configuração pode resultar em falha de implantação e/ou perda não intencional de dados. Esta definição destina-se apenas a ser utilizada na resolução de problemas de publicação, importação ou geração de scripts.
/Propriedades: /p: {PropertyName}={Valor} Especifica um par de valor de nome para uma propriedade específica de ação ; {PropertyName}={Valor}.
/Silêncio: /q: {Verdadeiro|Falso} Especifica se os comentários detalhados são suprimidos. A definição padrão é 'False'.
/SourceFile: /sf: {string} Especifica um arquivo de origem a ser usado como fonte de ação do armazenamento local. Se este parâmetro for utilizado, nenhum outro parâmetro de origem é válido.
/TargetConnectionString: /tcs: {string} Especifica uma string de conexão válida SQL Server/Azure para o banco de dados alvo. Se este parâmetro for especificado, deve ser utilizado exclusivamente para todos os outros parâmetros-alvo.
/TargetDatabaseName: /tdn: {string} Especifica uma substituição do nome da base de dados que é o alvo da ação SqlPackage.
/TargetEncryptConnection: /tec: {Opcional|Obrigatório|Estrito|Verdadeiro|Falso} Especifica se a criptografia SQL deve ser usada para a conexão do banco de dados de destino. O valor padrão é True.
/TargetHostNameInCertificate: /étnica: {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.
/TempoLimiteAlvo: /tt: {int} Especifica o tempo limite para estabelecer uma conexão com o banco de dados de destino em segundos. Para o Microsoft Entra ID, é recomendável que esse valor seja maior ou igual a 30 segundos.
/TargetTrustServerCertificate: /ttsc: {Verdadeiro|Falso} Especifica se o TLS deve ser usado para criptografar a conexão com o banco de dados de destino e ignorar a verificação da cadeia de certificados para verificar a confiança. O valor padrão é False.
/TargetUser: /tu: {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 destino.
/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 este AD. 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.
/AutenticaçãoUniversal: /ua: {Verdadeiro|Falso} 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 Importar

Propriedade Valor Descrição
/p: CommandTimeout=(INT32 '60') Especifica o tempo limite do comando em segundos ao executar consultas no SQL Server.
/p: DatabaseEdition=({ Básico | Padrão | Premium | Armazém de Dados | Propósito Geral | Criticamente Empresarial | Hiperescala | Padrão } 'Padrão') Define a edição de um Banco de Dados SQL do Azure. Consulte as camadas de serviço do Azure SQL Database.
/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: DatabaseMaximumSize=(INT32 '0') Define o tamanho máximo em GB de um Banco de Dados SQL do Azure.
/p: ObjectiveDoServiçoDeBaseDeDados=(STRING) Define o nível de desempenho de um Banco de Dados SQL do Azure, como "P0" ou "S1".
/p: DisableIndexesForDataPhase=(BOOLEAN 'Verdadeiro') Quando true (padrão), desativa os índices antes de importar dados. Quando falso, os índices não são reconstruídos.
/p: DisableParallelismForEnablingIndexes=(BOOLEAN 'Falso') Não usar paralelismo ao recriar índices durante a importação de dados para o SQL Server.
/p: HashObjectNamesInLogs=(BOOLEAN 'Falso') Especifica se todos os nomes de objeto em logs devem ser substituídos por um valor de hash aleatório.
/p: ImportContributorArguments=(STRING) Especifica os argumentos do contribuidor de implantação para os colaboradores de implantação. Esta propriedade deve ser uma lista delimitada por ponto-e-vírgula de valores.
/p: ImportContributorPaths=(STRING) Especifica caminhos para carregar contribuidores de importação adicionais. Esta propriedade deve ser uma lista delimitada por ponto-e-vírgula de valores.
/p: ImportContributors=(STRING) Especifica os colaboradores de implantação, que devem ser executados quando o bacpac é importado. Essa propriedade deve ser uma lista delimitada por ponto-e-vírgula de nomes ou IDs de colaboradores de compilação totalmente qualificados.
/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: PreserveIdentidadeUltimosValores=(BOOLEAN 'False') Especifica se os últimos valores das colunas de identidade devem ser preservados durante a implantação.
/p: ReconstruirÍndicesOfflineParaFaseDeDados=(BOOLEANO 'Falso') Quando verdadeiro, recria índices offline após importar dados para o SQL Server.
/p: Storage=({Ficheiro|Memória}) Especifica como os elementos são armazenados ao criar o modelo de banco de dados. Por motivos de desempenho, o padrão é InMemory. Para bancos de dados grandes, é necessário armazenamento com backup de arquivo.

Próximos passos