Condividi tramite


Strumenti di progetti SQL

Gli strumenti per i progetti SQL sono disponibili in diversi ambienti di sviluppo e interfacce della riga di comando. Gli strumenti principali per i progetti SQL sono l'utilità SqlPackage, SQL Server Data Tools (SSDT) in Visual Studio e l'estensione SQL Database Projects per Visual Studio Code.

Strumenti inclusi in questo articolo:

Strumenti grafici

Questi strumenti forniscono un'interfaccia grafica per i progetti SQL, un editor di Transact-SQL (T-SQL) e un processo di compilazione e pubblicazione.

L'estensione SQL Database Projects è un'estensione per Visual Studio Code. Questa estensione fornisce un'interfaccia grafica per i progetti SQL, un editor T-SQL e un processo di compilazione e pubblicazione.

Database DevOps in SQL Server Management Studio (SSMS) fornisce un'interfaccia grafica per progetti SQL, un editor T-SQL e un processo di compilazione e pubblicazione.

SQL Server Data Tools (SSDT) è un componente Visual Studio che fornisce un'interfaccia grafica per i progetti SQL. SSDT offre una finestra di progettazione visiva per tabelle, un editor T-SQL e un processo di compilazione e pubblicazione.

Confronto delle funzionalità

Funzionalità Visual Studio Code SSMS SSDT (VS2022-2026) SSDT di tipo SDK (anteprima) (VS2022)
Creare un progetto vuoto Yes Yes Yes Yes
Creare il nuovo progetto dal database esistente Yes Yes Yes Yes
Apri i progetti Microsoft.Build.Sql esistenti Yes Yes NO Yes
Aprire progetti in stile originale (SSDT) Yes NO Yes NO
Gestione e funzionamento delle soluzioni NO Yes Yes Yes
Project eseguire la compilazione Yes Yes Yes Yes
Pubblicare il progetto su un server esistente Yes Yes Yes Yes
Pubblicare un progetto in un'istanza di sviluppo locale 1 2 3 3
Opzioni/proprietà di pubblicazione Yes Yes Yes Yes
La piattaforma di destinazione può essere aggiornata Yes Yes Yes Yes
Variabili SQLCMD Yes Yes Yes Yes
Riferimenti al progetto Yes Yes Yes Yes
Riferimenti DACPAC Yes Yes Yes Yes
Riferimenti ai pacchetti Yes Yes NO NO
Creazione del profilo di pubblicazione Yes NO Yes Yes
I file SQL possono essere aggiunti inserendoli nella cartella del progetto Yes Yes NO Yes
I file SQL possono essere esclusi dalla build Yes Yes Yes NO
Script di pre-distribuzione e post-distribuzione Yes Yes Yes Yes
Nuovi modelli di oggetti 4 Yes Yes 4
Project file possono essere organizzati in cartelle Yes Yes Yes Yes
Progetto di confronto degli schemi con il database Yes NO Yes Yes
Database di confronto dello schema nel progetto Yes NO Yes NO
Progettazione tabelle grafiche NO NO Yes Yes
Analisi del codice : interfaccia utente grafica delle regole di abilitazione/disabilitazione Yes Yes Yes NO
Proprietà del progetto - Impostazioni di output della compilazione NO NO Yes Yes
Proprietà del progetto - GUI delle impostazioni del database NO NO Yes NO
Project eseguire l'analisi code Yes Yes Yes NO
Ridenominazione e refactoring degli oggetti NO NO Yes NO
IntelliSense presente nei file di database basato sul modello di progetto NO NO Yes NO

1 l'istanza di sviluppo locale è un contenitore SQL Server.
2 Qualsiasi Microsoft database SQL preinstallato può essere usato come istanza di sviluppo locale.
3 L'istanza di sviluppo locale è un'istanza SQL Server LocalDB.
4 Sottoinsieme limitato di modelli disponibili.

Strumenti da riga di comando

SqlPackage è l'utilità della riga di comando principale per la libreria DacFx, che consente l'automazione delle attività di sviluppo del database, ad esempio la distribuzione di .dacpac in un database o l'estrazione degli oggetti di un database in un progetto SQL o .dacpac.

Le applicazioni console personalizzate possono essere compilate usando la libreria dacFx .NET per automatizzare le attività di sviluppo del database. Microsoft.SqlServer.Dac namespace contiene classi per la creazione, l'implementazione e l'estrazione di oggetti di database ed è fondamentale per il resto del DacFx library.

Le pipeline CI/CD possono essere create con l'esecuzione della riga di comando o con task specifiche per .dacpac e la distribuzione di progetti SQL. Il GitHub sql-action e SqlAzureDacpacDeployment in Azure DevOps sono esempi di attività che usano SqlPackage sotto un livello di gestione per facilitare la distribuzione delle modifiche del database.

Strumenti di conversione

Il processo di conversione di un progetto SQL esistente in un progetto in stile SDK viene eseguito modificando manualmente il .sqlproj file in modo da includere il nuovo formato di progetto in stile SDK. Prima di iniziare il processo, è consigliabile eseguire il backup del file di progetto e archiviare un .dacpac oggetto del progetto. Confrontando un "prima" e "dopo" .dacpac compilato dal progetto, è possibile assicurarsi che il processo di conversione sia stato completato correttamente.

gestione di soluzioni/progetti

Più progetti SQL (e altri progetti) possono essere raggruppati logicamente in un file di soluzione. Il file di soluzione è un contenitore per uno o più progetti e viene usato per gestire i progetti come gruppo, inclusa l'azione di compilazione. Le soluzioni di grandi dimensioni possono essere suddivise in soluzioni più piccole per migliorare le prestazioni e la gestibilità o generate dinamicamente per l'attività appropriata. Il generatore di file di soluzione slngen è disponibile per i progetti Microsoft.Build.Sql e può essere utilizzato per creare un file di soluzione per un set di progetti programmaticamente e su richiesta.

Cartina stradale

Una roadmap trimestrale per le funzionalità correlate ai progetti SQL è disponibile all'indirizzo https://aka.ms/sqlprojects-roadmap. Il feedback dei clienti influisce notevolmente sulla roadmap, che incorpora sia la modernizzazione delle capacità dei progetti di Microsoft.Build.Sql, sia i miglioramenti agli strumenti associati ai progetti SQL.

Strumenti di terzi

Sono disponibili strumenti di terzi che forniscono funzionalità correlate ai progetti SQL e alla distribuzione di database. Alcuni strumenti sono open source, ad esempio dbatools.

Gli sviluppatori hanno condiviso i loro progetti utilizzando punti di estensibilità per i progetti SQL, incluse le regole di analisi del codice e la personalizzazione dei piani di distribuzione. Ecco alcuni di questi progetti: