Parâmetros e propriedades da ação Extract do SqlPackage

A ação de Extração do SqlPackage.exe cria um esquema de um banco de dados conectado a um arquivo DACPAC (.dacpac). Por padrão, os dados não são incluídos no arquivo .dacpac. Para incluir dados, use a opção Exportar ação ou as propriedades de extração ExtractAllTableData/TableData.

Sintaxe da linha de comando

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

SqlPackage /Action:Extract {parameters} {properties}

Observação

Quando um banco de dados com as credenciais de senha (por exemplo, um usuário de autenticação do SQL) é extraído, a senha é substituída por outra senha de complexidade adequada. Os usuários do SqlPackage ou do DacFx devem alterar a senha após a publicação do DACPAC.

Exemplos

# example extract to create a schema-only .dacpac file connecting using SQL authentication
SqlPackage /Action:Extract /TargetFile:{filename}.dacpac /DiagnosticsFile:{logFile}.log /p:ExtractAllTableData=false /p:VerifyExtraction=true \
    /SourceServerName:{serverFQDN} /SourceDatabaseName:{databaseName} /SourceUser:{username} /SourcePassword:{password}

# example extract to create a .sql file containing the schema definition of the database
SqlPackage /Action:Extract /TargetFile:{filename}.dacpac /DiagnosticsFile:{logFile}.log /SourceServerName:{serverFQDN} \
    /SourceDatabaseName:{databaseName} /SourceUser:{username} /SourcePassword:{password} /p:ExtractTarget:File

# example extract to create a .dacpac file with data connecting using SQL authentication
SqlPackage /Action:Extract /TargetFile:{filename}.dacpac /DiagnosticsFile:{logFile}.log /p:ExtractAllTableData=true /p:VerifyExtraction=true \
    /SourceServerName:{serverFQDN} /SourceDatabaseName:{databaseName} /SourceUser:{username} /SourcePassword:{password}


# example extract to create a schema-only .dacpac file connecting using Active Directory Service Principal
SqlPackage /Action:Extract /TargetFile:"C:\AdventureWorksLT.dacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Service Principal;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"


# example extract to create a schema-only .dacpac file connecting using Azure Active Directory username and password
SqlPackage /Action:Extract /TargetFile:"C:\AdventureWorksLT.dacpac" \
    /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 extract to create a schema-only .dacpac file connecting using Azure Active Directory universal authentication
SqlPackage /Action:Extract /TargetFile:"C:\AdventureWorksLT.dacpac" /UniversalAuthentication=True \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# example extract to create a schema-only .dacpac file 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.exe /at:$AccessToken /Action:Extract /TargetFile:"C:\AdventureWorksLT.dacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# OR
sqlpackage.exe /at:$($AccessToken_Object.Token) /Action:Extract /TargetFile:"C:\AdventureWorksLT.dacpac" \
    /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 Extract

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 Extract Especifica a ação a ser executada.
/AzureCloudConfig: /acc {string} Especifica os pontos de extremidade personalizados para conectar ao Azure Active Directory 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 SqlPackage.exe deverá sobrescrever os arquivos existentes. Especificar false fará com que SqlPackage.exe 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/SQL 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) no armazenamento local 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 o nome de domínio ou a ID do locatário do Azure AD. Essa opção é necessária para dar suporte a usuários convidados ou importados do Azure AD 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 Azure AD será usada, supondo que o usuário autenticado seja um usuário nativo desse AD. No entanto, nesse caso, não há suporte para usuários convidados ou importados e/ou contas da Microsoft hospedadas nesse Azure AD, e a operação falhará.
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).
/ThreadMaxStackSize: /tmss {int} Especifica o tamanho máximo em megabytes para o thread que executa a ação de SqlPackage.exe. Essa opção só deve ser usada ao encontrar exceções de estouro de pilha que ocorrem durante a análise de instruções TSQL 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 Azure AD 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 Azure AD pode ser especificada em SourceConnectionString (/scs). Quando /UniversalAuthentication está definido como False, a autenticação do Azure AD 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).

Propriedades específicas da ação Extrair

Propriedade Valor Descrição
/p: AzureStorageBlobEndpoint=(STRING) Ponto de extremidade de Armazenamento de Blobs do Azure. Confira SqlPackage para Azure Synapse Analytics.
/p: AzureStorageContainer=(STRING) Contêiner do Armazenamento de Blobs do Azure. Confira SqlPackage para Azure Synapse Analytics.
/p: AzureStorageKey=(STRING) Chave de conta de armazenamento do Azure. Confira SqlPackage para Azure Synapse Analytics.
/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.
/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: DacApplicationDescription=(STRING) Define a descrição do aplicativo a ser armazenada nos metadados do DACPAC.
/p: DacApplicationName=(STRING) Definiu o nome do aplicativo a ser armazenado nos metadados do DACPAC. O valor padrão é o nome do banco de dados.
/p: DacMajorVersion=(INT32 '1') Define a versão principal a ser armazenada nos metadados do DACPAC.
/p: DacMinorVersion=(INT32 '0') Define a versão secundária a ser armazenada nos metadados do DACPAC.
/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: ExtractAllTableData=(BOOLEAN 'False') Indica se os dados de todas as tabelas de usuários são extraídos. Se "true", os dados de todas as tabelas de usuários serão extraídos, e você não poderá especificar tabelas de usuários individuais para extrair dados. Se "false", especifique uma ou mais tabelas de usuário para extrair dados.
/p: ExtractApplicationScopedObjectsOnly=(BOOLEAN 'True') Se for verdadeiro, apenas extrairá objetos com escopo para o aplicativo da origem especificada. Se for falso, extrairá todos os objetos com escopo para o aplicativo da origem especificada.
/p: ExtractReferencedServerScopedElements=(BOOLEAN 'True') Se true, extrairá logon, auditoria de servidor e objetos de credencial referenciados pelos objetos do banco de dados de origem.
/p: ExtractTarget=({DacPac|File|Flat|ObjectType|Schema|SchemaObjectType} 'DacPac') Especifica formatos de saída alternativos do esquema de banco de dados, o padrão é 'DacPac' para gerar apenas um arquivo .dacpac. Opções adicionais geram um ou mais arquivos .sql organizados por 'SchemaObjectType' (arquivos em pastas para cada esquema e tipo de objeto), 'Schema' (arquivos em pastas para cada esquema), 'ObjectType' (arquivos em pastas para cada tipo de objeto), 'Flat' (todos os arquivos na mesma pasta) ou 'File' (apenas um arquivo).
/p: ExtractUsageProperties=(BOOLEAN 'False') Especifica se propriedades de uso, como contagem de linhas da tabela e tamanho do índice, serão extraídas do banco de dados.
/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: IgnoreExtendedProperties=(BOOLEAN 'False') Especifica se as propriedades estendidas devem ser ignoradas.
/p: IgnorePermissions=(BOOLEAN 'True') Especifica se as permissões devem ser ignoradas.
/p: IgnoreUserLoginMappings=(BOOLEAN 'False') Especifica se os relacionamentos entre usuários e logons devem ser ignorados.
/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 opção pode ser especificada várias vezes.
/p: TempDirectoryForTableData=(STRING) Especifica o diretório temporário usado para armazenar em buffer os dados da tabela antes de serem gravados no arquivo do pacote.
/p: VerifyExtraction=(BOOLEAN 'True') Especifica se o modelo de esquema extraído deve ser verificado.

Próximas etapas