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.
Un'applicazione livello dati è un'unità autonoma dell'intero modello di database ed è portabile in un artefatto noto come pacchetto di applicazione livello dati o .dacpac
. È consigliabile esaminare il contenuto di un .dacpac
prima di distribuirlo nell'ambiente di produzione e convalidare le azioni di aggiornamento prima di aggiornare un'applicazione livello dati esistente. La convalida del contenuto .dacpac
è particolarmente importante quando si distribuiscono pacchetti non sviluppati nell'organizzazione. Questo articolo descrive diversi modi per decomprimere il modello di database da un .dacpac
per Windows, macOS e Linux.
Avvertimento
È consigliabile non distribuire un .dacpac
da origini sconosciute o non attendibili. Tali DAC possono contenere codice dannoso che potrebbe eseguire codice imprevisto o causare errori modificando lo schema. Prima di utilizzare un componente di applicazione dati (DAC) da un'origine sconosciuta o non attendibile, distribuiscilo in un'istanza di test isolata del motore di database. Dopo aver scompattato il DAC, esamina il codice, incluse le stored procedure o altro codice definito dall'utente.
Le opzioni per esaminare il contenuto di un .dacpac
includono:
- importazione del
.dacpac
in un progetto SQL in Visual Studio - uso dell'utilità della riga di comando SqlPackage per estrarre il
.dacpac
- decompressione del file per visualizzare il contenuto XML
- distribuzione del
.dacpac
in un'istanza di test
La decompressione di un .dacpac
immediatamente dopo l'estrazione da un database per visualizzare le definizioni degli oggetti viene eseguita in modo più efficiente utilizzando Extract su SqlPackage con la proprietà /p:ExtractTarget=File
. Il risultato crea direttamente un singolo file .sql
che contiene le definizioni di oggetto dal database di origine specificato.
Importare il file DACPAC in un progetto SQL in Visual Studio
L'importazione di un .dacpac
in un progetto SQL in Visual Studio comporta la trasformazione dei .dacpac
in file .sql e organizzati in cartelle. Dopo l'importazione, gli script di post-distribuzione e gli script di pre-distribuzione del .dacpac
sono visibili in Esplora soluzioni.
Installare SQL Server Data Tools come parte di Visual Studio e creare un nuovo progetto SQL.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto vuoto e selezionare Importa, quindi da un pacchetto dell'applicazione di livello dati.
Decomprimere il file DACPAC per visualizzare il contenuto XML
La decompressione del file .dacpac
comporta la disponibilità del contenuto XML non elaborato per la visualizzazione in un editor di testo. Quando si cerca un componente specifico all'interno del .dacpac
, la revisione del contenuto XML può essere un metodo rapido per accedere alle informazioni.
Modificare l'estensione del file
.dacpac
in.zip
.Decomprimere il file .zip usando l'utilità fornita dal sistema operativo. Per decomprimere un file dalla riga di comando:
unzip AdventureWorks.dacpac
Il contenuto risultante include
DacMetadata.xml
,Origin.xml
emodel.xml
.
Distribuire il DACPAC in un'istanza di test
La distribuzione dell'.dacpac
in un'istanza di test comporta la pubblicazione del .dacpac
in un database in cui è possibile esplorare gli oggetti da vari strumenti di database connessi.
Nota
Un'opzione per la creazione di un'istanza di test in locale è con SQL Server in Docker.
Distribuire il DACPAC usando Azure Data Studio
Installare l'estensione dacpac di SQL Server in Azure Data Studio.
Connetti all'istanza desiderata. Fare clic con il pulsante destro del mouse sul nodo server e scegliere Procedura guidata applicazione livello dati dal menu.
Seleziona l'opzione di distribuzione dalla procedura guidata e imposta l'opzione Database di destinazione su Nuovo Database.
Dopo la distribuzione passare al database nel server connesso in Esplora oggetti per esplorare gli oggetti di database.
Distribuire il DACPAC usando SqlPackage
Usare l'interfaccia della riga di comando di SqlPackage per pubblicare il file
.dacpac
nell'istanza desiderata. Ad esempio, per i comandi per pubblicare un.dacpac
in un database, consultare gli esempi di pubblicazione di SqlPackage .
Altri strumenti con funzionalità di distribuzione DACPAC
Oltre ad Azure Data Studio e SqlPackage, è possibile usare molti altri strumenti per distribuire un .dacpac
in un database. Alcuni esempi includono:
- SQL Server Management Studio
- Visual Studio: SQL Server Data Tools
Richiamare il metodo Unpack()
L'API Microsoft.SqlServer.DacFx .NET fornisce un metodo per decomprimere un .dacpac
a una cartella, che può essere usata per decomprimere a livello di codice un .dacpac
in una cartella come illustrato. L'applicazione .NET di esempio seguente accetta due argomenti, il percorso del file .dacpac
e il percorso della cartella di output e il risultato è il contenuto del .dacpac
convertito in 3 file XML e un singolo file .sql che contiene tutti gli oggetti di database.
using Microsoft.SqlServer.Dac;
namespace DacUnpack
{
class Program
{
static void Main(string[] args)
{
var dacpacPath = args[0];
var outputPath = args[1];
if (!Directory.Exists(outputPath))
{
Directory.CreateDirectory(outputPath);
}
Console.WriteLine("Unpacking {0} to {1}", dacpacPath, outputPath);
using(DacPackage dacpac = DacPackage.Load(dacpacPath))
{
dacpac.Unpack(outputPath);
}
}
}
}
Contenuto correlato
- Panoramica delle applicazioni livello dati (DAC)
- Parametri, proprietà e variabili SQLCMD di SqlPackage
- Estensione DACPAC di SQL Server in Azure Data Studio
- Installare SQL Server Data Tools (SSDT) per Visual Studio