Parametri e proprietà di Export di SqlPackage

L'azione Export di SqlPackage esporta un database connesso a un file BACPAC (con estensione bacpac). Per impostazione predefinita, nel file bacpac verranno inclusi i dati di tutte le tabelle. Facoltativamente, è possibile specificare solo un subset di tabelle per cui esportare i dati. La convalida dell'azione Export garantisce la compatibilità del database SQL di Azure per il database di destinazione completo anche se viene specificato un subset di tabelle per l'esportazione.

Nota

Anche se Microsoft Entra ID è il nuovo nome per Azure Active Directory (Azure AD), per evitare l'interruzione degli ambienti esistenti, Azure AD rimane ancora in alcuni elementi hardcoded, ad esempio campi dell'interfaccia utente, provider di connessioni, codici di errore e cmdlet. In questo articolo i due nomi sono intercambiabili.

Sintassi della riga di comando

SqlPackage avvia le azioni specificate usando i parametri, le proprietà e le variabili SQLCMD indicati nella riga di comando.

SqlPackage /Action:Export {parameters} {properties}

Nota

L'esportazione di SqlPackage offre prestazioni ottimali per i database di dimensioni inferiori ai 200 GB. Per i database di dimensioni maggiori, è possibile ottimizzare l'operazione usando le proprietà disponibili in questo articolo e i suggerimenti riportati in Risoluzione dei problemi con SqlPackage.

Esempi

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

Parametri per l'azione Export

Parametro Forma breve valore Description
/AccessToken: /at: {string} Specifica il token di accesso per l'autenticazione basata su token da usare per la connessione al database di destinazione.
/Action: /a: Esportazione Specifica l'azione da eseguire.
/AzureCloudConfig: /acc: {string} Specifica gli endpoint personalizzati per la connessione a Microsoft Entra ID nel formato: AzureActiveDirectoryAuthority={value};DatabaseServicePrincipalName={value}".
/Diagnostics: /d: {True|False} Specifica se la registrazione diagnostica viene restituita come output nella console. Il valore predefinito è False.
/DiagnosticsFile: /df: {string} Specifica un file per archiviare i log di diagnostica.
/MaxParallelism: /mp: {int} Specifica il grado di parallelismo per le operazioni simultanee in esecuzione su un database. Il valore predefinito è 8.
/OverwriteFiles: /of: {True|False} Specifica se i file esistenti devono essere sovrascritti tramite SqlPackage. Se si specifica False e viene rilevato un file esistente, SqlPackage interrompe l'azione. Il valore predefinito è True.
/Properties: /p: {NomeProprietà}={Valore} Specifica una coppia nome/valore per una proprietà action-specific;{PropertyName}={Value}.
/Quiet: /q: {True|False} Specifica se la notifica dettagliata dell'interfaccia utente viene eliminata. Il valore predefinito è False.
/SourceConnectionString: /scs: {string} Specifica una stringa di connessione valida di SQL Server o Azure al database di origine. Se questo parametro viene specificato, deve essere usato esclusivamente per altri parametri di origine.
/SourceDatabaseName: /sdn: {string} Definisce il nome del database di origine.
/SourceEncryptConnection: /sec: {Optional|Mandatory|Strict|True|False} Specifica se deve essere utilizzata la crittografia SQL per la connessione al database di origine. Il valore predefinito è True.
/SourceHostNameInCertificate: /shnic: {string} Specifica il valore che viene usato per la convalida del certificato TLS/SSL di SQL Server di origine quando il livello di comunicazione è crittografato tramite TLS.
/SourcePassword: /sp: {string} Per gli scenari di autenticazione di SQL Server, definisce la password da usare per accedere al database di origine.
/SourceServerName: /ssn: {string} Definisce il nome del server che ospita il database di origine.
/SourceTimeout: /st: {int} Specifica il timeout in secondi per una connessione al database di origine.
/SourceTrustServerCertificate: /stsc: {True|False} Specifica se usare TLS per crittografare la connessione al database di origine e ignorare l'analisi della catena di certificati per convalidare l'attendibilità. Il valore predefinito è False.
/SourceUser: /su: {string} Per gli scenari di autenticazione di SQL Server, definisce l'utente SQL Server da usare per accedere al database di origine.
/TargetFile: /tf: {string} Specifica un file di destinazione, ovvero un file DACPAC, da usare come destinazione dell'azione anziché di un database. Se si usa questo parametro, non deve essere valido nessun altro parametro di destinazione. Questo parametro non sarà valido per le azioni che supportano solo le destinazioni del database.
/TenantId: /tid: {string} Rappresenta l'ID tenant o il nome di dominio di Microsoft Entra. Questa opzione è necessaria per il supporto degli utenti guest o importati di Microsoft Entra e per gli account Microsoft, ad esempio outlook.com, hotmail.com o live.com. Se questo parametro viene omesso, verrà usato l'ID tenant predefinito per Microsoft Entra ID, supponendo che l'utente autenticato sia un utente nativo per questo tenant. In questo caso, tuttavia, gli utenti guest o importati e/o gli account Microsoft ospitati in questa istanza di Microsoft Entra ID non sono supportati e l'operazione avrà esito negativo.
Per altre informazioni, vedere Autenticazione universale con il database SQL e Azure Synapse Analytics (supporto di SSMS per MFA).
/ThreadMaxStackSize: /tmss: {int} Specifica le dimensioni massime in megabyte per il thread che esegue l'azione di SqlPackage. Questa opzione deve essere usata solo in presenza di eccezioni di stack overflow che si verificano durante l'analisi di istruzioni Transact-SQL molto grandi.
/UniversalAuthentication: /ua: {True|False} Specifica se deve essere usata l'autenticazione universale. Se impostato su True, viene attivato il protocollo di autenticazione interattivo per supportare l'autenticazione a più fattori. Questa opzione può essere usata anche per l'autenticazione di Microsoft Entra senza autenticazione a più fattori, usando un protocollo interattivo che richiede all'utente di immettere il nome utente e la password o l'autenticazione integrata (credenziali di Windows). Se /UniversalAuthentication è impostato su True, non è possibile specificare l'autenticazione di Microsoft Entra in SourceConnectionString (/scs). Se /UniversalAuthentication è impostato su False, l'autenticazione di Microsoft Entra deve essere specificata in SourceConnectionString (/scs).
Per altre informazioni, vedere Autenticazione universale con il database SQL e Azure Synapse Analytics (supporto di SSMS per MFA).

Proprietà specifiche dell'azione Esportazione

Proprietà valore Description
/p: CommandTimeout=(INT32 '60') Specifica il timeout del comando in secondi quando si eseguono query in SQL Server.
/p: CompressionOption=({Normal|Maximum|Fast|SuperFast|NotCompressed} 'Normal') Specifica il tipo di compressione.
/p: DatabaseLockTimeout=(INT32 '60') Specifica il timeout del blocco a livello di database in secondi quando si eseguono query su SQL Server. Usare -1 per l'attesa indefinita.
/p: HashObjectNamesInLogs=(BOOLEAN 'False') Specifica se sostituire tutti i nomi degli oggetti nei log con un valore hash casuale.
/p: IgnoreIndexesStatisticsOnEnclaveEnabledColumns=(BOOLEAN 'False') Specifica se gli indici o le statistiche nelle colonne crittografate tramite la crittografia casuale e le chiavi di crittografia di colonna abilitate per l'enclave devono essere ignorati (non inclusi nel bacpac generato). Per impostazione predefinita (false) qualsiasi indice o statistica in una colonna crittografata usando la crittografia casuale e una chiave di crittografia di colonna abilitata per l'enclave bloccherà l'azione di esportazione.
/p: LongRunningCommandTimeout=(INT32 '0') Specifica il timeout del comando a esecuzione prolungata in secondi quando si eseguono query su SQL Server. Usare 0 per l'attesa indefinita.
/p: Storage=({File|Memory}) Specifica il tipo di archivio di backup per il modello schema utilizzato durante l'estrazione. 'Memory' è l'impostazione predefinita per la versione di .NET Core di SqlPackage. 'File' è disponibile e l'impostazione predefinita solo per .NET Framework di SqlPackage.
/p: TableData=(STRING) Indica la tabella da cui verranno estratti i dati. Specificare il nome della tabella con o senza parentesi che racchiudono le parti che compongono il nome nel formato seguente: nome_schema.identificatore_tabella. Questa proprietà può essere specificata più volte per indicare più opzioni.
/p: TargetEngineVersion=({Default|Latest|V11|V12} 'Latest') Questa proprietà è deprecata e il suo uso è consigliato. Specifica la versione prevista dal motore di destinazione per il database SQL di Azure.
/p: TempDirectoryForTableData=(STRING) Specifica la directory temporanea alternativa usata per memorizzare nel buffer i dati della tabella prima della relativa scrittura nel file del pacchetto. Lo spazio necessario in questa posizione può essere grande ed è relativo alle dimensioni complete del database.
/p: VerifyExtraction=(BOOLEAN 'True') Specifica se il modello di schema estratto deve essere verificato. Se impostato su true, le regole di convalida dello schema vengono eseguite nel file dacpac o nel bacpac.
/p: VerifyFullTextDocumentTypesSupported=(BOOLEAN 'False') Specifica se i tipi di documento full-text supportati per il database SQL di Microsoft Azure versione 12 devono essere verificati.

Passaggi successivi