Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Les outils destinés aux projets SQL sont disponibles dans plusieurs environnements de développement et interfaces de ligne de commande. Les principaux outils pour les projets SQL sont l’utilitaire de ligne de commande SqlPackage , SQL Server Data Tools (SSDT) dans Visual Studio et l’extension Sql Database Projects pour Visual Studio Code.
Outils inclus dans cet article :
Outils graphiques
Ces outils fournissent une interface graphique pour les projets SQL, un éditeur T-SQL et un processus de génération et de publication.
L’extension Sql Database Projects est une extension pour VS Code. Cette extension fournit une interface graphique pour les projets SQL, un éditeur T-SQL et un processus de génération et de publication. L’extension est également disponible dans Azure Data Studio avec la même fonctionnalité.
SQL Server Data Tools (SSDT) est un composant de Visual Studio qui fournit une interface graphique pour les projets SQL. SSDT fournit un concepteur visuel pour les tables, un éditeur T-SQL et un processus de génération et de publication.
Comparaison d’ensemble de fonctionnalités
| Fonctionnalité | Code Visual Studio | SSDT (VS2022-2026) | SSDT de style SDK, préversion (VS2022) |
|---|---|---|---|
| Créer un projet vide | Oui | Oui | Oui |
| Créer un projet à partir d’une base de données existante | Oui | Oui | Oui |
| Ouvrir des projets Microsoft.Build.Sql existants | Oui | Non | Oui |
| Gestion des solutions et opérations | Non | Oui | Oui |
| Exécuter un build de projet | Oui | Oui | Oui |
| Publier un projet sur un serveur existant | Oui | Oui | Oui |
| Publier un projet sur une instance de développement locale | Oui1 | Oui2 | Oui2 |
| Options/Propriétés de publication | Oui | Oui | Oui |
| La plateforme cible peut être mise à jour | Oui | Oui | Oui |
| Variables SQLCMD | Oui | Oui | Oui |
| Références de projets | Oui | Oui | Oui |
| Références Dacpac | Oui | Oui | Oui |
| Références de package | Oui | Non | Non |
| Création d’un profil de publication | Oui | Oui | Oui |
| Les fichiers SQL peuvent être ajoutés en les plaçant dans le dossier du projet | Oui | Non | Oui |
| Les fichiers SQL peuvent être exclus des builds | Oui | Oui | Non |
| Scripts de pré/post-déploiement | Oui | Oui | Oui |
| Nouveaux modèles d’objet | Oui3 | Oui | Oui3 |
| Les fichiers de projet peuvent être organisés en dossiers | Oui | Oui | Oui |
| Comparaison de schémas, projet vers base de données | Oui | Oui | Oui |
| Comparaison de schémas, base de données vers projet | Oui | Oui | Non |
| Concepteur de table graphique | Non | Oui | Oui |
| Analyse du code : activer/désactiver l’interface utilisateur graphique des règles | Non | Oui | Non |
| Propriétés du projet : paramètres de sortie de build | Non | Oui | Oui |
| Propriétés du projet : interface utilisateur des paramètres de la base de données | Non | Oui | Non |
| Analyse du code d’exécution du projet | Oui | Oui | Non |
| Renommage et refactorisation des objets | Non | Oui | Non |
| IntelliSense fourni dans les fichiers de base de données du modèle de projet | Non | Oui | Non |
- L’instance de développement locale est un conteneur SQL Server.
- L’instance de développement locale est une instance SQL Server LocalDB.
- Sous-ensemble limité de modèles disponibles
Outils en ligne de commande
SqlPackage est le principal utilitaire de ligne de commande pour la bibliothèque DacFx, permettant l'automatisation des tâches de développement de bases de données telles que le déploiement d'un .dacpac vers une base de données ou l'extraction des objets d'une base de données vers un projet SQL ou un .dacpac.
Des applications console personnalisées peuvent être créées à l’aide de la bibliothèque .NET DacFx pour automatiser les tâches de développement de base de données. L’espace de noms Microsoft.SqlServer.Dac contient des classes pour la création, le déploiement et l’extraction d’objets de base de données, et est fondamentale dans le reste de la bibliothèque DacFx.
Les pipelines CI/CD peuvent être générés avec l’exécution en ligne de commande ou avec des tâches spécifiques à .dacpac et au déploiement de projets SQL.
GitHub sql-action et SqlAzureDacpacDeployment dans Azure DevOps sont des exemples de tâches qui utilisent SqlPackage sous une couche de gestion afin de faciliter le déploiement des modifications de base de données.
Outils de conversion
Le processus de conversion d’un projet SQL existant en projet de style SDK est effectué en modifiant manuellement le .sqlproj fichier pour inclure le nouveau format de projet de style SDK. Avant de commencer le processus, il est recommandé de sauvegarder le fichier de projet et d’archiver une copie .dacpac du projet. En comparant un « avant » et un « après » .dacpac générés à partir du projet, vous pouvez vous assurer que le processus de conversion est correctement terminé.
Gestion de projet/solution
Plusieurs projets SQL (et d’autres projets) peuvent être regroupés logiquement dans un fichier de solution. Le fichier solution est un conteneur pour un ou plusieurs projets et est utilisé pour gérer les projets en tant que groupe, y compris l’action de génération. Les grandes solutions peuvent être réparties en solutions plus petites afin d’améliorer les performances et la facilité de gestion, ou générées dynamiquement pour la tâche appropriée. Le générateur de fichiers de solution slngen est disponible pour les projets Microsoft.Build.Sql et peut être utilisé pour créer un fichier de solution pour un ensemble de projets par programmation et à la demande.
Outils tiers
Des outils tiers fournissant des fonctionnalités liées aux projets SQL et au déploiement de base de données sont disponibles. Certains outils sont à code source ouvert, comme dbatools.
Les développeurs ont partagé leurs projets en utilisant des points d’extensibilité autour de projets SQL, notamment des règles d’analyse du code et la personnalisation des plans de déploiement. Voici quelques-uns de ces projets :
- https://github.com/tcartwright/SqlServer.Rules
- https://github.com/davebally/TSQL-Smells
- https://github.com/ErikEJ/SqlServer.Rules
- https://github.com/GoEddie/DeploymentContributorFilterer
Contenu connexe
- Développement de base de données hors connexion orienté projet
- Extension des projets SQL Database
- SqlPackage
- GitHub sql-action
- Déploiements Azure DevOps SQL
- Application de la couche Données (DAC)
- Référentiel de commentaires DacFx
- Bien démarrer avec les projets de bases de données SQL
- Tutoriel : créer et déployer un projet SQL