Introduzione ai progetti di database SQL
Si applica a: SQL Server 2022 (16.x) Database Azure SQL Istanza gestita di SQL di Azure
Un progetto di database SQL è una rappresentazione locale degli oggetti SQL che costituiscono lo schema di un database singolo, ad esempio tabelle, stored procedure o funzioni. Il ciclo di sviluppo di un progetto di database SQL consente di integrare lo sviluppo di database in flussi di lavoro di integrazione continua e distribuzione continua (CI/CD), noto come procedura consigliata per lo sviluppo.
Questo articolo illustra come creare un nuovo progetto SQL, aggiungere oggetti al progetto e compilare e distribuire il progetto. Ad eccezione delle istruzioni di Visual Studio (SQL Server Data Tools), la guida è incentrata sui progetti SQL in stile SDK.
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’implementazione di un progetto di database SQL, è 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.
Passaggio 1: Creare un nuovo progetto
Per iniziare il progetto, creare un nuovo progetto di database SQL prima di aggiungerli manualmente. Esistono altri modi per creare un progetto che consente di popolare immediatamente il progetto con oggetti di un database esistente, ad esempio usando gli strumenti di confronto schemi.
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.
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).
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.
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 Sì.
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: aggiungere oggetti al progetto
In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo di progetto e scegliere Aggiungi poi Tabella. Viene visualizzata la finestra di dialogo Aggiungi nuovo elemento, in cui è possibile specificare il nome della tabella. Selezionare Aggiungi per creare la tabella nel progetto SQL.
La tabella viene aperta nella finestra di progettazione tabelle di Visual Studio con la definizione della tabella modello, in cui è possibile aggiungere colonne, indici e altre proprietà della tabella. Salvare il file dopo aver apportato le modifiche iniziali.
È possibile aggiungere altri oggetti di database tramite la finestra di dialogo Aggiungi nuovo elemento, ad esempio viste, stored procedure e funzioni. Accedere alla finestra di dialogo facendo clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni e selezionando Aggiungi, quindi il tipo di oggetto desiderato. I file nel progetto possono essere organizzati in cartelle tramite l'opzione Nuova cartella in Aggiungi.
In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nodo del progetto e quindi scegliere Aggiungi, quindi Nuovo elemento. Verrà visualizzata la finestra di dialogo Aggiungi nuovo elemento, selezionare Mostra tutti i modelli e quindi Tabella. Specificare il nome della tabella come nome file e selezionare Aggiungi per creare la tabella nel progetto SQL.
La tabella viene aperta nell'editor di query Visual Studio con la definizione della tabella modello, in cui è possibile aggiungere colonne, indici e altre proprietà della tabella. Salvare il file dopo aver apportato le modifiche iniziali.
È possibile aggiungere altri oggetti di database tramite la finestra di dialogo Aggiungi nuovo elemento, ad esempio viste, stored procedure e funzioni. Accedere alla finestra di dialogo facendo clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni e selezionando Aggiungi, quindi il tipo di oggetto desiderato dopo Mostra tutti i modelli. I file nel progetto possono essere organizzati in cartelle tramite l'opzione Nuova cartella in Aggiungi.
Nella visualizzazione Progetti del database di VS Code o Azure Data Studio fare clic con il pulsante destro del mouse sul nodo del progetto e scegliere Aggiungi tabella. Nella finestra di dialogo visualizzata specificare il nome della tabella.
La tabella viene aperta nell'editor di testo con la definizione della tabella modello, in cui è possibile aggiungere colonne, indici e altre proprietà della tabella. Salvare il file dopo aver apportato le modifiche iniziali.
È possibile aggiungere altri oggetti di database tramite il menu di scelta rapida nel nodo del progetto, ad esempio viste, stored procedure e funzioni. Accedere alla finestra di dialogo facendo clic con il pulsante destro del mouse sul nodo del progetto nella vista Progetti del database di VS Code o Azure Data Studio, quindi sul tipo di oggetto desiderato. I file nel progetto possono essere organizzati in cartelle tramite l'opzione Nuova cartella in Aggiungi.
I file possono essere aggiunti al progetto creandoli nella directory del progetto o nelle cartelle annidate. L'estensione del file deve essere .sql
e l'organizzazione in base al tipo di oggetto o allo schema e al tipo di oggetto è consigliato.
Il modello di base per una tabella può essere usato come punto di partenza per la creazione di un nuovo oggetto tabella nel progetto:
CREATE TABLE [dbo].[Table1]
(
[Id] INT NOT NULL PRIMARY KEY
)
Passaggio 3: compilare il progetto
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
).
Passaggio 4: Distribuire il progetto
Il modello compilato di uno schema di database in un file .dacpac
può essere distribuito in un database di destinazione usando lo strumento utilità da riga di comando SqlPackage
o altri strumenti di distribuzione. Il processo di distribuzione determina i passaggi necessari per aggiornare il database di destinazione in modo che corrisponda allo schema definito in .dacpac
, creando o modificando oggetti in base alle esigenze basandosi sugli oggetti già esistenti nel database. Di conseguenza, il processo di distribuzione è idempotente, ovvero può essere eseguito più volte senza causare problemi ed è possibile distribuire lo stesso .dacpac
in più database senza dover predeterminare il proprio stato.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo di progetto e scegliere Pubblica….
Verrà visualizzata la finestra di dialogo di pubblicazione, in cui si stabilisce la connessione al database di destinazione. Se non si dispone di un'istanza SQL esistente per la distribuzione, LocalDB ((localdb)\MSSQLLocalDB
) viene installato con Visual Studio e può essere usato per il test e lo sviluppo.
Specificare un nome di database e selezionare Pubblica per distribuire il progetto nel database di destinazione o Genera script per generare uno script da rivedere prima dell'esecuzione.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo di progetto e scegliere Pubblica….
Verrà visualizzata la finestra di dialogo di pubblicazione, in cui si stabilisce la connessione al database di destinazione. Se non si dispone di un'istanza SQL esistente per la distribuzione, LocalDB ((localdb)\MSSQLLocalDB
) viene installato con Visual Studio e può essere usato per il test e lo sviluppo.
Specificare un nome di database e selezionare Pubblica per distribuire il progetto nel database di destinazione o Genera script per generare uno script da rivedere prima dell'esecuzione.
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 Pubblica.
Suggerimento
Se non si dispone di un'istanza SQL disponibile per la distribuzione, l'estensione database SQL Projects può creare un'istanza locale di SQL Server in un nuovo contenitore. Con un runtime del contenitore, ad esempio Docker Desktop in esecuzione, selezionare Pubblica in un nuovo contenitore di sviluppo locale di SQL Server dall'elenco a discesa.
Se si dispone di un'istanza SQL esistente per la distribuzione, selezionare Pubblica in un server SQL esistente e quindi Non usare il profilo se richiesto per un profilo di pubblicazione.
Se non è stata configurata una connessione a un database di destinazione, viene richiesto di creare una nuova connessione. I nuovi input di connessione richiedono il nome del server, il metodo di autenticazione e il nome del database.
Dopo aver configurato la connessione, verrà avviato il processo di distribuzione. È possibile scegliere di eseguire automaticamente la distribuzione (pubblicazione) o generare uno script da rivedere prima di eseguire (generare script).
L'interfaccia della riga di comando di SqlPackage viene usata per implementare un file .dacpac
in un database di destinazione con l'azione di pubblicazione.
Ad esempio, per distribuire un file .dacpac
in un database di destinazione basato su un stringa di connessione:
sqlpackage /Action:Publish /SourceFile:bin/Debug/projectname.dacpac /TargetConnectionString:{yourconnectionstring}