Bien démarrer avec les projets de bases de données SQL
S’applique à : SQL Server 2022 (16.x)base de données Azure SQL Azure SQL Managed Instance
Un projet de base de données SQL Database est une représentation locale d’objets SQL qui comprennent le schéma d’une base de données unique, comme des tables, des procédures stockées ou des fonctions. Le cycle de développement d'un projet de base de données SQL permet d'intégrer le développement de la base de données dans un flux de travail d'intégration et de déploiement continus (CI/CD) connu comme une meilleure pratique de développement.
Cet article décrit la création d'un projet SQL, l'ajout d'objets au projet et générer et déployer le projet. À l'exception des instructions relatives à Visual Studio (SQL Server Data Tools), le guide se concentre sur les projets SQL de style SDK.
Prérequis
# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage
# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates
Remarque
Pour terminer le déploiement d'un projet de base de données SQL, vous devez avoir accès à une instance Azure SQL ou SQL Server. Vous pouvez développer localement et gratuitement avec l'édition SQL Server Développeur sur Windows ou dans des conteneurs.
Étape 1 : Créer un projet
Nous débutons notre projet en créant un projet de base de données SQL avant d'y ajouter manuellement des objets. Il existe d'autres manières de créer un projet qui permettent de l'alimenter immédiatement avec des objets provenant d'une base de données existante, par exemple en utilisant les outils de comparaison de schémas.
Sélectionnez Fichier, Nouveau, puis Projet.
Dans la boîte de dialogue Nouveau projet, utilisez le terme SQL Server dans la zone de recherche. Le premier résultat devrait être Projet de base de données SQL Server.
Cliquez sur Suivant pour passer à l’étape suivante. Indiquez un nom de projet, qui ne doit pas nécessairement correspondre à un nom de base de données. Vérifiez et modifiez l'emplacement du projet si nécessaire.
Sélectionnez Créer pour créer le projet. Le projet vide est ouvert et visible dans l'Explorateur de solutions pour modification.
Sélectionnez Fichier, Nouveau, puis Projet.
Dans la boîte de dialogue Nouveau projet, utilisez le terme SQL Server dans la zone de recherche. Le meilleur résultat devrait être Projet de base de données SQL Server, style SDK (préversion).
Cliquez sur Suivant pour passer à l’étape suivante. Indiquez un nom de projet, qui ne doit pas nécessairement correspondre à un nom de base de données. Vérifiez et modifiez l'emplacement du projet si nécessaire.
Sélectionnez Créer pour créer le projet. Le projet vide est ouvert et visible dans l'Explorateur de solutions pour modification.
Dans la vue Projets de base de données de VS Code ou Azure Data Studio, sélectionnez le bouton Nouveau projet.
La première invite détermine le modèle de projet à utiliser, principalement selon que la plateforme cible est SQL Server ou Azure SQL. Si une version spécifique de SQL est demandée, choisissez la version qui correspond à la base de données cible, mais si la version de la base de données cible est inconnue, choisissez la dernière version, car la valeur peut être modifiée ultérieurement.
Saisissez un nom de projet dans la zone de texte qui s'affiche, qui ne doit pas nécessairement correspondre à un nom de base de données.
Dans la boîte de dialogue « Sélectionner un dossier » qui s’affiche, sélectionnez un répertoire où doivent être placés le dossier du projet, le fichier .sqlproj
et tout autre contenu.
Lorsque l'invite demande s'il faut créer un projet de style SDK (aperçu), sélectionnez Oui.
Une fois terminé, le projet vide est ouvert et visible dans la vue Projets de base de données pour être modifié.
Lorsque les modèles .NET pour les projets Microsoft.Build.Sql sont installés, vous pouvez créer un projet de base de données SQL à partir de la ligne de commande. L’option -n
spécifie le nom du projet et l’option -tp
spécifie la plateforme cible du projet.
Utilisez l’option -h
pour afficher toutes les options disponibles.
# install Microsoft.Build.Sql.Templates
dotnet new sqlproject -n MyDatabaseProject
Étape 2 : ajouter des objets au projet
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nœud du projet et sélectionnez Ajouter, puis Table. La boîte de dialogue Ajouter un nouvel élément s'affiche et vous permet de spécifier le nom de la table. Sélectionnez Ajouter pour créer la table dans le projet SQL.
La table est ouverte dans le concepteur de tables de Visual Studio avec la définition de la table modèle, où vous pouvez ajouter des colonnes, des index et d'autres propriétés de table. Enregistrez le fichier lorsque vous avez terminé les premières modifications.
D'autres objets de base de données peuvent être ajoutés via la boîte de dialogue Ajouter un nouvel élément, tels que des vues, des procédures stockées et des fonctions. Pour accéder à la boîte de dialogue, cliquez avec le bouton droit sur le nœud du projet dans l'Explorateur de solutions et sélectionnez Ajouter, puis le type d'objet souhaité. Les fichiers du projet peuvent être organisés en dossiers grâce à l'option Nouveau dossier sous Ajouter.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud de projet, puis sélectionnez Ajouter et Nouvel élément. La boîte de dialogue Ajouter un nouvel élément s’affiche, sélectionnez Afficher tous les modèles, puis Table. Spécifiez le nom de la table comme nom de fichier puis sélectionnez Ajouter pour créer la table dans le projet SQL.
La table est ouverte dans l’éditeur de requête de Visual Studio avec la définition de table modèle, où vous pouvez ajouter des colonnes, des index et d’autres propriétés de table. Enregistrez le fichier lorsque vous avez terminé les premières modifications.
D'autres objets de base de données peuvent être ajoutés via la boîte de dialogue Ajouter un nouvel élément, tels que des vues, des procédures stockées et des fonctions. Pour accéder à la boîte de dialogue, cliquez avec le bouton droit sur le nœud du projet dans l'Explorateur de solutions et sélectionnez Ajouter, puis le type d'objet souhaité après Afficher tous les modèles. Les fichiers du projet peuvent être organisés en dossiers grâce à l'option Nouveau dossier sous Ajouter.
Dans la vue Projets de base de données de VS Code ou Azure Data Studio, cliquez avec le bouton droit sur le nœud du projet et sélectionnez Ajouter une table. Indiquez le nom de la table dans la boîte de dialogue qui s'affiche.
La table est ouverte dans l’éditeur de texte avec la définition de table de modèle, où vous pouvez ajouter des colonnes, des index et d’autres propriétés de table. Enregistrez le fichier lorsque vous avez terminé les premières modifications.
D'autres objets de base de données peuvent être ajoutés via le menu local du nœud du projet, tels que les vues, les procédures stockées et les fonctions. Pour accéder à la boîte de dialogue, cliquez avec le bouton droit sur le nœud du projet dans la vue Projets de base de données de VS Code ou Azure Data Studio, puis sur le type d'objet souhaité. Les fichiers du projet peuvent être organisés en dossiers grâce à l'option Nouveau dossier sous Ajouter.
Les fichiers peuvent être ajoutés au projet en les créant dans le répertoire du projet ou dans des dossiers imbriqués. L'extension du fichier doit être .sql
et l'organisation par type d'objet ou par schéma et type d'objet est recommandée.
Le modèle de base d'une table peut être utilisé comme point de départ pour la création d'un objet table dans le projet :
CREATE TABLE [dbo].[Table1]
(
[Id] INT NOT NULL PRIMARY KEY
)
Étape 3 : Générer le projet
Le processus de génération valide les relations entre les objets et la syntaxe par rapport à la plateforme cible spécifiée dans le fichier de projet. La production de l'artefact issu du processus de génération est un fichier .dacpac
, qui peut être utilisé pour déployer le projet dans une base de données cible et qui contient le modèle compilé du schéma de la base de données.
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nœud du projet et sélectionnez Générer.
La Fenêtre Sortie s'ouvre automatiquement pour afficher le processus de génération. Les erreurs ou avertissements éventuels sont affichés dans la fenêtre sortie. Lors d'une génération réussie, l'artefact de génération (fichier .dacpac
) est créé et son emplacement est inclus dans la production de la génération (la valeur par défaut est bin\Debug\projectname.dacpac
).
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nœud du projet et sélectionnez Générer.
La Fenêtre Sortie s'ouvre automatiquement pour afficher le processus de génération. Les erreurs ou avertissements éventuels sont affichés dans la fenêtre sortie. Lors d'une génération réussie, l'artefact de génération (fichier .dacpac
) est créé et son emplacement est inclus dans la production de la génération (la valeur par défaut est bin\Debug\projectname.dacpac
).
Dans la vue Projets de base de données de VS Code ou Azure Data Studio, cliquez avec le bouton droit sur le nœud du projet et sélectionnez Générer.
La Fenêtre Sortie s'ouvre automatiquement pour afficher le processus de génération. Les erreurs ou avertissements éventuels sont affichés dans la fenêtre sortie. Lors d'une génération réussie, l'artefact de génération (fichier .dacpac
) est créé et son emplacement est inclus dans la production de la génération (la valeur par défaut est bin/Debug/projectname.dacpac
).
Les projets de base de données SQL peuvent être générés à partir de la ligne de commande à l’aide de la commande dotnet build
.
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
La production de la génération comprend les erreurs ou les avertissements, ainsi que les fichiers spécifiques et les numéros de ligne où ils se produisent. Lors d'une génération réussie, l'artefact de génération (fichier .dacpac
) est créé et son emplacement est inclus dans la production de la génération (la valeur par défaut est bin/Debug/projectname.dacpac
).
Étape 4 : Déployer les projets
Le modèle compilé d'un schéma de base de données dans un fichier .dacpac
peut être déployé dans une base de données cible à l'aide de l'outil en ligne de commande SqlPackage
ou d'autres outils de déploiement. Le processus de déploiement détermine les étapes nécessaires pour mettre à jour la base de données cible afin qu'elle corresponde au schéma défini dans le .dacpac
, en créant ou en modifiant les objets nécessaires sur la base des objets déjà existants dans la base de données. Par conséquent, le processus de déploiement est idempotent, ce qui signifie qu'il peut être exécuté plusieurs fois sans causer de problèmes et que vous pouvez déployer le même .dacpac
dans plusieurs bases de données sans avoir à prédéterminer leur état.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud du projet et sélectionnez Publier…..
La boîte de dialogue de publication s'ouvre et vous permet d'établir la connexion à la base de données cible. Si vous ne disposez pas d'une instance SQL existante à déployer, LocalDB ((localdb)\MSSQLLocalDB
) est installé avec Visual Studio et peut être utilisé pour les tests et le développement.
Spécifiez un nom de base de données et sélectionnez Publier pour déployer le projet dans la base de données cible ou Générer un script pour générer un script à réviser avant de l'exécuter.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud du projet et sélectionnez Publier…..
La boîte de dialogue de publication s'ouvre et vous permet d'établir la connexion à la base de données cible. Si vous ne disposez pas d'une instance SQL existante à déployer, LocalDB ((localdb)\MSSQLLocalDB
) est installé avec Visual Studio et peut être utilisé pour les tests et le développement.
Spécifiez un nom de base de données et sélectionnez Publier pour déployer le projet dans la base de données cible ou Générer un script pour générer un script à réviser avant de l'exécuter.
Dans la vue Projets de base de données de VS Code ou Azure Data Studio, cliquez avec le bouton droit sur le nœud du projet et sélectionnez Publier.
Conseil
Si vous ne disposez pas d'une instance SQL disponible pour le déploiement, l'extension SQL Database Projects peut créer pour vous une instance locale de SQL Server dans un nouveau conteneur. Avec un conteneur d'exécution tel que Docker Desktop en cours d'exécution, sélectionnez Publier dans un nouveau conteneur de développement local SQL Server dans la liste déroulante.
Si vous disposez d'une instance SQL existante à déployer, sélectionnez Publier dans un serveur SQL existant, puis Ne pas utiliser de profil s'il vous est demandé d'indiquer un profil de publication.
Si vous n'avez pas configuré de connexion à une base de données cible, vous êtes invité à créer une nouvelle connexion. Les nouvelles entrées de connexion demandent le nom du serveur, la méthode d'authentification et le nom de la base de données.
Une fois la connexion configurée, le processus de déploiement commence. Vous pouvez choisir d'exécuter automatiquement le déploiement (publier) ou de générer un script à examiner avant l'exécution (générer un script).
L'interface CLI SqlPackage est utilisée pour déployer un fichier .dacpac
dans une base de données cible à l'aide de l'action de publication.
Par exemple, pour déployer un fichier .dacpac
dans une base de données cible sur la base d'une chaîne de connexion :
sqlpackage /Action:Publish /SourceFile:bin/Debug/projectname.dacpac /TargetConnectionString:{yourconnectionstring}