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.
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à della riga di comando SqlPackage , SQL Server Data Tools (SSDT) in Visual Studio e l'estensione Progetti di database SQL per Visual Studio Code.
Strumenti inclusi in questo articolo:
Strumenti grafici
Questa strumenti forniscono un'interfaccia grafica per i progetti SQL, un editor T-SQL e un processo di compilazione e pubblicazione.
L'estensione Progetti di database SQL è un'estensione per VS Code. Questa estensione fornisce un'interfaccia grafica per i progetti SQL, un editor T-SQL e un processo di compilazione e pubblicazione. L'estensione è disponibile anche in Azure Data Studio con le stesse funzionalità.
SQL Server Data Tools (SSDT) è un componente di 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à | VS Code | SSDT (VS2022-2026) | SSDT in stile SDK, anteprima (VS2022) |
|---|---|---|---|
| Creare un progetto vuoto | Yes | Yes | Yes |
| Creare il nuovo progetto dal database esistente | Yes | Yes | Yes |
| Aprire progetti Microsoft.Build.Sql esistenti | Yes | NO | Yes |
| Gestione e funzionamento delle soluzioni | NO | Yes | Yes |
| Esecuzione build del progetto | Yes | Yes | Yes |
| Pubblicare il progetto su un server esistente | Yes | Yes | Yes |
| Pubblicare un progetto in un'istanza di sviluppo locale | Sì1 | Sì2 | Sì2 |
| Opzioni/proprietà di pubblicazione | Yes | Yes | Yes |
| La piattaforma di destinazione può essere aggiornata | Yes | Yes | Yes |
| Variabili SQLCMD | Yes | Yes | Yes |
| Riferimenti al progetto | Yes | Yes | Yes |
| Riferimenti dacpac | Yes | Yes | Yes |
| Riferimenti ai pacchetti | Yes | NO | NO |
| Creazione del profilo di pubblicazione | Yes | Yes | Yes |
| I file SQL possono essere aggiunti inserendoli nella cartella del progetto | Yes | NO | Yes |
| I file SQL possono essere esclusi dalla build | Yes | Yes | NO |
| Script pre-implementazione e post-implementazione | Yes | Yes | Yes |
| Nuovi modelli di oggetti | Sì3 | Yes | Sì3 |
| I file di progetto possono essere organizzati in cartelle | Yes | Yes | Yes |
| Progetto di confronto degli schemi con il database | Yes | Yes | Yes |
| Database di confronto dello schema nel progetto | Yes | Yes | NO |
| Progettazione tabelle grafiche | NO | Yes | Yes |
| Analisi del codice : interfaccia utente grafica delle regole di abilitazione/disabilitazione | NO | Yes | NO |
| Proprietà del progetto: impostazioni di output della build | NO | Yes | Yes |
| Proprietà del progetto - GUI delle impostazioni del database | NO | Yes | NO |
| Analisi del codice di esecuzione del progetto | Yes | Yes | NO |
| Ridenominazione e refactoring degli oggetti | NO | Yes | NO |
| IntelliSense presente nei file di database basato sul modello di progetto | NO | Yes | NO |
- L'istanza di sviluppo locale è un contenitore di SQL Server.
- L'istanza di sviluppo locale è un'istanza Local DB di SQL Server.
- 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 create usando la libreria .NET DacFx per automatizzare le attività di sviluppo del database. Lo spazio dei nomi Microsoft.SqlServer.Dac contiene classi per la creazione, la distribuzione e l'estrazione di oggetti database ed è fondamentale per il resto del catalogo DacFx.
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.
GitHub sql-action e SqlAzureDacpacDeployment in Azure DevOps sono esempi di task 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 progetti/soluzioni
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 usato per creare un file di soluzione per un set di progetti a livello di codice e su richiesta.
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, come 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:
- https://github.com/tcartwright/SqlServer.Rules
- https://github.com/davebally/TSQL-Smells
- https://github.com/ErikEJ/SqlServer.Rules
- https://github.com/GoEddie/DeploymentContributorFilterer
Contenuto correlato
- Sviluppo di database offline orientato ai progetti
- Estensione progetti di database SQL
- SqlPackage
- GitHub sql-action
- Distribuzioni SQL di Azure DevOps
- Applicazioni livello dati (DAC)
- Repository di commenti e suggerimenti di DacFx
- Introduzione ai progetti di database SQL
- Esercitazione: creare e implementare un progetto SQL