Condividi tramite


Esercitazione: iniziare da un database esistente

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure database SQL in Microsoft Fabric

I progetti SQL contengono file dichiarativi (istruzione CREATE) per tutti gli oggetti in un database, ad esempio tabelle, viste e stored procedure. Questi file possono essere usati per creare nuovi database, aggiornare i database esistenti o anche solo per tenere traccia del database nel controllo del codice sorgente. Spesso si inizia con un progetto SQL quando si dispone di un database esistente e si vogliono creare oggetti nel progetto SQL che corrispondono al database con un impegno minimo.

Alcuni strumenti di progetti SQL includono un unico passaggio per la creazione di un nuovo progetto SQL da un database esistente. Altri strumenti richiedono alcuni passaggi per creare un nuovo progetto SQL e quindi importare oggetti da un database esistente. Ad eccezione delle istruzioni di Visual Studio (SQL Server Data Tools), la guida è incentrata sui progetti SQL in stile SDK.

Con l’opzione 1 in questa esercitazione, è possibile:

Passaggio 1: creare un nuovo progetto SQL da un database esistente Passaggio 2: compilare il progetto SQL

Con l’opzione 2 in questa esercitazione, è possibile:

  • Passaggio 1: creare un nuovo progetto vuoto SQL
  • Passaggio 2: importare oggetti da un database esistente
  • Passaggio 3: compilare il progetto SQL

Prerequisiti

# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage

# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates

Nota

Per completare l'esercitazione, è necessario accedere a un'istanza di Azure SQL o SQL Server. È possibile sviluppare in locale gratuitamente con SQL Server Developer Edition in Windows o in contenitori.

Opzione 1: creare un nuovo progetto SQL da un database esistente

Passaggio 1: creare un nuovo progetto SQL da un database esistente

In Esplora oggetti di SQL Server in Visual Studio, fare clic con il pulsante destro del mouse sul database da cui si vuole creare un progetto e scegliere Crea nuovo progetto….

Screenshot della finestra di dialogo Importa database in Visual Studio.

Nella finestra di dialogo Crea nuovo progetto specificare un nome di progetto, che non deve corrispondere a un nome di database. Verificare e modificare il percorso del progetto in base alle esigenze. Le impostazioni di importazione predefinite importano gli oggetti in cartelle in base allo schema e quindi al tipo di oggetto. È possibile modificare le impostazioni di importazione per modificare la struttura di cartelle o includere le autorizzazioni negli oggetti da importare. Avviare l'importazione.

Mentre l'importazione procede, lo stato di avanzamento viene visualizzato come messaggi nella finestra di dialogo Importa database. Al termine dell'importazione, gli oggetti importati sono visibili in Esplora soluzioni e i log vengono archiviati in un file nella directory del progetto in Import Schema Logs. Selezionare Fine.

L'opzione 1 non è disponibile per la riga di comando. Usare invece l’opzione 2.

Nella visualizzazione Esplora oggetti di database in VS Code o Azure Data Studio selezionare un database da cui si vuole creare un progetto. Fare clic con il pulsante destro del mouse sul database e quindi scegliere Crea progetto dal database.

Screenshot della finestra di dialogo Crea progetto dal database in Azure Data Studio.

In Azure Data Studio la finestra di dialogo Crea progetto dal database richiede che il nome e il percorso del progetto siano selezionati. Le impostazioni di importazione predefinite importano gli oggetti in cartelle in base allo schema e quindi al tipo di oggetto. È possibile selezionare una struttura di cartelle diversa o includere le autorizzazioni negli oggetti importati prima di selezionare Crea.

In VS Code i prompt dei comandi richiedono un nome e un percorso del progetto. Le impostazioni di importazione predefinite importano gli oggetti in cartelle in base allo schema e quindi al tipo di oggetto. È possibile selezionare una struttura di cartelle diversa o includere le autorizzazioni negli oggetti importati prima dell'inizio dell'importazione.

Aprire la vista Progetti di database per visualizzare il nuovo progetto e le definizioni degli oggetti importati.

L'opzione 1 non è disponibile per la riga di comando. Usare invece l’opzione 2.

Passaggio 2: compilare il progetto SQL

Il processo di compilazione convalida le relazioni tra oggetti e la sintassi rispetto alla piattaforma di destinazione specificata nel file di progetto. L'output dell'artefatto del processo di compilazione è un file .dacpac, che può essere usato per distribuire il progetto in un database di destinazione e contiene il modello compilato dello schema del database.

In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo di progetto e scegliere Crea.

Verrà visualizzata automaticamente la finestra di output per visualizzare il processo di compilazione. Se sono presenti errori o avvisi, vengono visualizzati nella finestra di output. In una compilazione completata, l'artefatto di compilazione (file .dacpac) viene creato il relativo percorso è incluso nell'output di compilazione (il valore predefinito è bin\Debug\projectname.dacpac).

L'opzione 1 non è disponibile per la riga di comando. Usare invece l’opzione 2.

Nella visualizzazione Progetti di database di VS Code o Azure Data Studio fare clic con il pulsante destro del mouse sul nodo del progetto e scegliere Compila.

Verrà visualizzata automaticamente la finestra di output per visualizzare il processo di compilazione. Se sono presenti errori o avvisi, vengono visualizzati nella finestra di output. In una compilazione completata, l'artefatto di compilazione (file .dacpac) viene creato il relativo percorso è incluso nell'output di compilazione (il valore predefinito è bin/Debug/projectname.dacpac).

L'opzione 1 non è disponibile per la riga di comando. Usare invece l’opzione 2.

Opzione 2: creare un nuovo progetto SQL vuoto e importare oggetti da un database esistente

In alternativa, i passaggi di creazione del progetto e importazione di oggetti possono essere eseguiti separatamente.

Passaggio 1: creare un nuovo progetto vuoto SQL

Per iniziare il progetto, creare un nuovo progetto di database SQL prima di importare gli oggetti.

Scegliere File, Nuovo e poi Progetto.

Nella finestra di dialogo Nuovo progetto selezionare SQL Server nella casella di ricerca. Il risultato principale deve essere Progetto di database di SQL Server.

Screenshot della finestra di dialogo Nuovo progetto.

Selezionare Avanti per andare al passaggio successivo. Specificare un nome di progetto, che non deve corrispondere a un nome di database. Verificare e modificare il percorso del progetto in base alle esigenze.

Selezionare Crea per creare il progetto. Il progetto vuoto verrà aperto e visualizzato nella vista Esplora soluzioni per la modifica.

Scegliere File, Nuovo e poi Progetto.

Nella finestra di dialogo Nuovo progetto selezionare SQL Server nella casella di ricerca. Il risultato principale deve essere Progetto di database di SQL Server, stile SDK (anteprima).

Screenshot della finestra di dialogo Nuovo progetto.

Selezionare Avanti per andare al passaggio successivo. Specificare un nome di progetto, che non deve corrispondere a un nome di database. Verificare e modificare il percorso del progetto in base alle esigenze.

Selezionare Crea per creare il progetto. Il progetto vuoto verrà aperto e visualizzato nella vista Esplora soluzioni per la modifica.

Nella vista Progetti di database di VS Code o Azure Data Studio selezionare il pulsante Nuovo progetto.

Screenshot della nuova viewlet.

Il primo prompt determina il modello di progetto da usare, principalmente in base al fatto che la piattaforma di destinazione sia SQL Server o Azure SQL. Se viene richiesto di selezionare una versione specifica di SQL, scegliere la versione corrispondente al database di destinazione, ma se la versione del database di destinazione è sconosciuta, scegliere la versione più recente perché il valore può essere modificato in un secondo momento.

Immettere un nome di progetto nell'input di testo visualizzato, che non deve corrispondere a un nome di database.

Nella finestra di dialogo “Seleziona cartella” che appare, selezionare una directory in cui inserire la cartella del progetto, il file .sqlproj e altri contenuti.

Quando viene richiesto se creare un progetto in stile SDK (anteprima), selezionare .

Una volta completato, il progetto vuoto verrà aperto e visualizzato nella vista Progetti del database per la modifica.

Con i modelli .NET per i progetti Microsoft.Build.Sql installati, è possibile creare un nuovo progetto di database SQL dalla riga di comando. L'opzione -n specifica il nome del progetto e l'opzione -tp specifica la piattaforma di destinazione del progetto.

Usare l'opzione -h per visualizzare tutte le opzioni disponibili.

# install Microsoft.Build.Sql.Templates
dotnet new sqlproject -n MyDatabaseProject

Passaggio 2: importare oggetti da un database esistente

In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo del progetto e scegliere Importa -> Database.... Se questa opzione è disabilitata, il progetto di database potrebbe avere oggetti creati. È possibile eliminare gli oggetti o creare un nuovo progetto.

Nella finestra di dialogo Importa database selezionare la connessione al database da cui si desidera importare oggetti. Se si è connessi al database in Esplora oggetti di SQL Server, è presente nell'elenco della cronologia.

Screenshot della finestra di dialogo Importa database in Visual Studio.

Le impostazioni di importazione predefinite importano gli oggetti in cartelle in base allo schema e quindi al tipo di oggetto. È possibile modificare le impostazioni di importazione per modificare la struttura di cartelle o includere le autorizzazioni negli oggetti da importare. Avviare l'importazione.

Mentre l'importazione procede, lo stato di avanzamento viene visualizzato come messaggi nella finestra di dialogo Importa database. Al termine dell'importazione, gli oggetti importati sono visibili in Esplora soluzioni e i log vengono archiviati in un file nella directory del progetto in Import Schema Logs. Selezionare Fine per restituire il progetto.

Si userà l'interfaccia della riga di comando di SqlPackage per importare oggetti da un database esistente al nuovo progetto di database SQL creato in Visual Studio nel passaggio 1. Il comando SqlPackage seguente importa lo schema di un database in una cartella MyDatabaseProject organizzata in base alle cartelle annidate dello schema e del tipo di oggetto.

sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType

Quando queste cartelle vengono inserite in una cartella di progetto di database SQL in stile SDK, vengono incluse automaticamente nel progetto senza dover importarle o modificare il file di progetto SQL.

Nota

L'estensione database SQL Projects in VS Code non supporta l'importazione di oggetti da un database in un progetto. Usare l'estensione database SQL Projects in Azure Data Studio per importare oggetti da un database o seguire l'opzione 1 per creare un nuovo progetto da un database esistente in VS Code.

Nell'estensione progetti di database SQL di Azure Data Studio, aprire la vista Progetti di database. Fare clic con il pulsante destro del mouse sul nodo del progetto e scegliere Aggiorna progetto dal database.

Screenshot della finestra di dialogo Database aggiornato in Azura Data Studio.

Nella finestra di dialogo Aggiorna database selezionare la connessione al database da cui si desidera importare oggetti. Se si è connessi al database nella vista Connessioni, è presente nell'elenco della cronologia.

Selezionare Visualizza modifiche nello schema da rivedere e scegliere un sottoinsieme di oggetti da importare o Applicare tutte le modifiche per importare tutti gli oggetti.

L'interfaccia della riga di comando di SqlPackage può essere usata per estrarre lo schema di un database esistente in un file .dacpac o in singoli file .sql. Il comando SqlPackage seguente estrae lo schema di un database in un file .sql organizzato in base alle cartelle annidate dello schema e del tipo di oggetto.

sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType

Quando queste cartelle vengono inserite in una cartella di progetto di database SQL in stile SDK, vengono incluse automaticamente nel progetto senza dover importarle o modificare il file di progetto SQL.

Passaggio 3: compilare il progetto SQL

Il processo di compilazione convalida le relazioni tra oggetti e la sintassi rispetto alla piattaforma di destinazione specificata nel file di progetto. L'output dell'artefatto del processo di compilazione è un file .dacpac, che può essere usato per distribuire il progetto in un database di destinazione e contiene il modello compilato dello schema del database.

In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo di progetto e scegliere Crea.

Verrà visualizzata automaticamente la finestra di output per visualizzare il processo di compilazione. Se sono presenti errori o avvisi, vengono visualizzati nella finestra di output. In una compilazione completata, l'artefatto di compilazione (file .dacpac) viene creato il relativo percorso è incluso nell'output di compilazione (il valore predefinito è bin\Debug\projectname.dacpac).

In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo di progetto e scegliere Crea.

Verrà visualizzata automaticamente la finestra di output per visualizzare il processo di compilazione. Se sono presenti errori o avvisi, vengono visualizzati nella finestra di output. In una compilazione completata, l'artefatto di compilazione (file .dacpac) viene creato il relativo percorso è incluso nell'output di compilazione (il valore predefinito è bin\Debug\projectname.dacpac).

Nella visualizzazione Progetti di database di VS Code o Azure Data Studio fare clic con il pulsante destro del mouse sul nodo del progetto e scegliere Compila.

Verrà visualizzata automaticamente la finestra di output per visualizzare il processo di compilazione. Se sono presenti errori o avvisi, vengono visualizzati nella finestra di output. In una compilazione completata, l'artefatto di compilazione (file .dacpac) viene creato il relativo percorso è incluso nell'output di compilazione (il valore predefinito è bin/Debug/projectname.dacpac).

I progetti di database SQL possono essere compilati dalla riga di comando usando il comando dotnet build.

dotnet build

# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj

L'output di compilazione include eventuali errori o avvisi e i file e i numeri di riga specifici in cui si verificano. In una compilazione completata, l'artefatto di compilazione (file .dacpac) viene creato il relativo percorso è incluso nell'output di compilazione (il valore predefinito è bin/Debug/projectname.dacpac).