Parametri e proprietà di Import di SqlPackage

L'azione Import di SqlPackage importa i dati di tabella e schema da un pacchetto BACPAC (.bacpac) in un database nuovo o vuoto in SQL Server o nel database SQL di Azure. Al momento dell'operazione di importazione in un database esistente, il database di destinazione non può contenere oggetti dello schema definiti dall'utente. In alternativa, è possibile creare un nuovo database tramite l'azione di importazione quando l'utente autenticato ha le autorizzazioni per la creazione di database.

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.

Nota

L'importazione 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.

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

Esempi

# 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;"
# example import 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:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /TargetConnectionString:"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:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Parametri per l'azione Import

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: Import 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.
/ModelFilePath: /mfp: {string} Specifica il percorso del file per eseguire la sostituzione di model.xml nel file di origine. L'uso di questa impostazione può causare un errore di distribuzione e/o una perdita di dati imprevista. Questa impostazione è destinata all'uso solo per la risoluzione dei problemi relativi alla pubblicazione, all'importazione o alla generazione di script.
/Properties: /p: {NomeProprietà}={Valore} Specifica una coppia nome/valore per una proprietà specifica dell'azione; {NomeProprietà}={Valore}.
/Quiet: /q: {True|False} Specifica se la notifica dettagliata dell'interfaccia utente viene eliminata. Il valore predefinito è False.
/SourceFile: /sf: {string} Specifica un file di origine da usare come origine dell'azione dalle risorse di archiviazione locali. Se si utilizza questo parametro, non deve essere valido nessun altro parametro di origine.
/TargetConnectionString: /tcs: {string} Specifica una stringa di connessione valida di SQL Server o Azure al database di destinazione. Se questo parametro viene specificato, deve essere usato esclusivamente per tutti gli altri parametri di destinazione.
/TargetDatabaseName: /tdn: {string} Specifica una sostituzione per il nome del database di destinazione del parametro Action di SqlPackage.
/TargetEncryptConnection: /tec: {Optional|Mandatory|Strict|True|False} Specifica se usare la crittografia SQL per la connessione al database di destinazione. Il valore predefinito è True.
/TargetHostNameInCertificate: /thnic: {string} Specifica il valore che viene usato per la convalida del certificato TLS/SSL di SQL Server di destinazione quando il livello di comunicazione è crittografato tramite TLS.
/TargetPassword: /tp: {string} Per gli scenari di autenticazione di SQL Server, definisce la password da usare per accedere al database di destinazione.
/TargetServerName: /tsn: {string} Definisce il nome del server che ospita il database di destinazione.
/TargetTimeout: /tt: {int} Specifica il timeout in secondi per stabilire una connessione al database di destinazione. Per Microsoft Entra ID è consigliabile che questo valore sia maggiore o uguale a 30 secondi.
/TargetTrustServerCertificate: /ttsc: {True|False} Specifica se usare TLS per crittografare la connessione al database di destinazione e ignorare l'analisi della catena di certificati per convalidare l'attendibilità. Il valore predefinito è False.
/TargetUser: /tu: {string} Per gli scenari di autenticazione di SQL Server, definisce l'utente SQL Server da usare per accedere al database di destinazione.
/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 AD. 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 Import

Proprietà valore Description
/p: CommandTimeout=(INT32 '60') Specifica il timeout del comando in secondi quando si eseguono query in SQL Server.
/p: DatabaseEdition=({ Basic | Standard | Premium | DataWarehouse | GeneralPurpose | BusinessCritical | Hyperscale | Default } 'Default') Definisce l'edizione di un database SQL di Azure. Vedere Livelli di servizio del database SQL di Azure.
/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: DatabaseMaximumSize=(INT32 '0') Definisce le dimensioni massime in GB di un database SQL di Azure.
/p: DatabaseServiceObjective=(STRING) Definisce il livello delle prestazioni di un database SQL di Azure, ad esempio "P0" o "S1".
/p: DisableIndexesForDataPhase=(BOOLEAN 'True') Se true (impostazione predefinita), disabilita gli indici prima di importare i dati. Se false, gli indici non vengono ricompilati.
/p: DisableParallelismForEnablingIndexes=(BOOLEAN 'False') Il parallelismo non verrà usato quando si ricompilano gli indici durante l'importazione di dati in SQL Server.
/p: HashObjectNamesInLogs=(BOOLEAN 'False') Specifica se sostituire tutti i nomi degli oggetti nei log con un valore hash casuale.
/p: ImportContributorArguments=(STRING) Specifica gli argomenti per i collaboratori alla distribuzione. Questa proprietà deve essere un elenco di valori separati da punti e virgola.
/p: ImportContributorPaths=(STRING) Specifica i percorsi per caricare collaboratori all'importazione aggiuntivi. Questa proprietà deve essere un elenco di valori separati da punti e virgola.
/p: ImportContributors=(STRING) Specifica i collaboratori alla distribuzione da eseguire durante l'importazione del bacpac. Questa proprietà deve essere un elenco di ID o nomi di collaboratori di compilazione completi separati da punti e virgola.
/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: PreserveIdentityLastValues=(BOOLEAN 'False') Specifica se gli ultimi valori per le colonne Identity devono essere mantenuti durante la distribuzione.
/p: RebuildIndexesOfflineForDataPhase=(BOOLEAN 'False') Se True, ricompila gli indici offline dopo l'importazione dei dati in SQL Server.
/p: Storage=({File|Memory}) Specifica la modalità di archiviazione degli elementi durante la compilazione del modello di database. Per motivi di prestazioni, l'impostazione predefinita è InMemory. In caso di database di dimensioni estese, è necessaria l'archiviazione di file di cui è stato eseguito il backup.

Passaggi successivi