Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:✅Database SQL in Microsoft Fabric
In questa esercitazione si apprenderà come usare SqlPackage nel database SQL in Fabric.
SqlPackage è un'interfaccia della riga di comando che fornisce la portabilità del database e le distribuzioni di database.
- La portabilità (importazione/esportazione) di un database gestito in Azure o in Fabric garantisce che i dati siano portabili in altre piattaforme se si vuole eseguire la migrazione in un secondo momento. - La portabilità include lo spostamento da e verso SQL Server, il database SQL di Azure, Istanza gestita di SQL di Azure e il database SQL in Fabric tramite copie di database indipendenti (
.bacpaco.dacpacfile).
SqlPackage può anche consentire semplici distribuzioni di database di modifiche incrementali agli oggetti di database (nuove colonne in tabelle, modifiche alle stored procedure esistenti e così via).
- SqlPackage può estrarre un
.dacpacfile contenente le definizioni degli oggetti in un database e pubblicare un.dacpacfile per applicare lo stato dell'oggetto a un database nuovo o esistente. - L'operazione di pubblicazione si integra anche con i progetti SQL, che consente cicli di sviluppo offline e più dinamici per i database SQL.
Prerequisiti
- Tutto ciò che serve è una capacità di Fabric. In caso contrario, avviare una versione di valutazione di Fabric.
- Creare una nuova area di lavoro o usare un'area di lavoro infrastruttura esistente.
- Creare o usare un database SQL esistente in Fabric. Se non ne è già disponibile uno, creare un nuovo database SQL in Fabric.
- Installare .NET 8 SDK.
Attrezzaggio
SqlPackage è disponibile per Windows, macOS e Linux come strumento dotnet. È possibile installarlo usando il comando seguente:
dotnet tool install --global Microsoft.SqlPackage
Come strumento dotnet globale, SqlPackage è disponibile nel terminale come sqlpackage da qualsiasi cartella.
Importare un database con SqlPackage
Un .bacpac è una copia portabile di un database, utile per alcuni scenari di migrazione e test. È possibile importarli.bacpac in un database SQL vuoto con l'importazione di SqlPackage.
Nota
Un .bacpac non è un backup né una sostituzione per le funzionalità di backup/ripristino. Per altre informazioni sui backup per il database SQL in Fabric, vedere Backup automatici nel database SQL in Microsoft Fabric e ripristino da un backup nel database SQL in Microsoft Fabric.
Se si usa un oggetto
.bacpacda un ambiente Azure o SQL Server, potrebbe essere necessario modificare il database di origine per soddisfare il database SQL nella superficie T-SQL di Fabric. Vedere Estrazione e pubblicazione della portabilità per un metodo alternativo che consente alle proprietà SqlPackage di ignorare alcuni oggetti non supportati.Creare il nuovo database SQL in Fabric come di consueto tramite l'interfaccia Fabric.
Copiare il stringa di connessione dalle impostazioni.
Usare il comando import dal terminale nella cartella sqlpackage. Specificare il proprietario
<servername>e<database_name>.sqlpackage /action:import /sourcefile:"C:\DatabaseName.bacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"- Sostituire il stringa di connessione dalla finestra di dialogo Impostazioni database SQL.
- Sostituire il
sourcefilevalore con il.bacpacnome (DatabaseName) elocationnel computer locale.
Seguire l'importazione con un processo di copia in Data Factory in Microsoft Fabric. Per iniziare, vedere Avvio rapido: Creare un processo di copia.
Esportare un database con SqlPackage
L'esportazione di è .bacpac l'operazione inversa, dove targetfile si trova e .bacpac si sourceconnectionstring trova nella finestra di dialogo Impostazioni database SQL, come nell'esempio precedente. Specificare il proprietario <servername> e <database_name>. Ad esempio:
sqlpackage /action:export /targetfile:"C:\DatabaseName.bacpac" /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"
Per altre informazioni sull'esportazione, vedere Esportazione di SqlPackage.
Estrarre e pubblicare
È .dacpac un file del modello di schema del database contenente le definizioni per le tabelle, le stored procedure e altri oggetti nel database di origine. Questo file può essere creato da un database esistente con SqlPackage o da un progetto di database SQL.
SqlPackage è in grado di distribuire un oggetto .dacpac in un nuovo database (vuoto) o di aggiornare in modo incrementale un database esistente in modo che corrisponda allo stato desiderato .dacpac .
-
L'estrazione crea un
.dacpacfile o sql da un database esistente. -
La pubblicazione distribuisce un oggetto
.dacpacin un database.
La sintassi di SqlPackage per la pubblicazione e per l'estrazione è simile ai comandi di importazione/esportazione.
Avvertimento
È consigliabile usare SqlPackage per distribuire un progetto SQL o .dacpac nel database SQL in Fabric. La distribuzione di un .dacpac da Visual Studio potrebbe non riuscire.
Per distribuire un .dacpac creato da database SQL di Azure, SQL Server o un progetto SQL destinato a una piattaforma diversa da database SQL in Fabric, aggiungere la proprietà /p:AllowIncompatiblePlatform=true al comando di pubblicazione di SqlPackage.
Estrarre e rendere pubblica la portabilità
Mentre i comandi di importazione/esportazione di SqlPackage sono incentrati sulla portabilità dei dati con il .bacpac formato, i comandi di estrazione e pubblicazione sono in grado di portabilità dei dati con il .dacpac formato. È possibile usare le proprietà di estrazione e pubblicazione per controllare il comportamento delle operazioni di estrazione e pubblicazione e offrire maggiore flessibilità per le conversioni tra piattaforme.
Per estrarre e .dacpac includere i dati, utilizzare la /p:ExtractAllTableData=true proprietà . L'operazione di estrazione crea un oggetto .dacpac contenente sia lo schema che i dati del database di origine. La proprietà /p:ExtractReferencedServerScopedElements=false esclude gli elementi con ambito server, che non sono supportati nel database SQL in Fabric. Il comando seguente estrae un .dacpac con dati da un database SQL esistente in Fabric:
sqlpackage /action:extract /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /targetfile:"C:\extracted.dacpac" /p:ExtractAllTableData=true /p:ExtractReferencedServerScopedElements=false
Per pubblicare un oggetto .dacpac estratto con i dati, non sono necessarie proprietà aggiuntive. Tuttavia, è possibile usare diverse proprietà per controllare il comportamento dell'operazione di pubblicazione:
-
/p:AllowIncompatiblePlatform=trueconsente la distribuzione di un oggetto.dacpacestratto da una piattaforma diversa, ad esempio il database SQL di Azure, SQL Server. -
/p:ExcludeObjectTypes=Logins;Usersesclude i tipi di oggetto che potrebbero riscontrare problemi di compatibilità durante la pubblicazione nel database SQL in Fabric. Per un elenco completo dei tipi di oggetto che possono essere esclusi, vedere Pubblicazione di SqlPackage.
Analogamente al comando SqlPackage import, prima di pubblicare un .dacpac oggetto nel database SQL in Fabric, è necessario creare il database in Fabric. È possibile creare il database tramite il portale di Fabric o un'altra interfaccia di Fabric. Il comando seguente pubblica l'estratto .dacpac in un database SQL vuoto in Fabric:
sqlpackage /action:publish /sourcefile:"C:\extracted.dacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /p:AllowIncompatiblePlatform=true /p:ExcludeObjectTypes=Logins;Users