Partager via


Tutoriel : débuter à partir d’une base de données existante

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Base de données SQL dans Microsoft Fabric

Les projets SQL contiennent des fichiers déclaratifs (instruction CREATE) pour tous les objets d’une base de données, tels que les tables, les vues et les procédures stockées. Ces fichiers peuvent être utilisés pour créer des bases de données, mettre à jour des bases de données existantes ou même pour suivre la base de données dans le contrôle de code source. Souvent, nous débutons avec un projet SQL lorsque nous disposons d'une base de données existante et que nous voulons créer des objets dans le projet SQL qui correspondent à la base de données avec un effort minimal.

Certains outils de projets SQL incluent une étape unique pour créer un projet SQL à partir d'une base de données existante. D'autres outils nécessitent quelques étapes pour créer un projet SQL et importer des objets à partir d'une base de données existante. À l'exception des instructions relatives à Visual Studio (SQL Server Data Tools), le guide se concentre sur les projets SQL de style SDK.

Avec l’option 1 dans ce tutoriel, vous devez :

Étape 1 : créer un projet SQL à partir d’une base de données existante Étape 2 : générer le projet SQL

Avec l’option 2 dans ce tutoriel, vous devez :

  • Étape 1 : créer un nouveau projet SQL vide
  • Étape 2 : importer des objets à partir d’une base de données existante
  • Étape 3 : Générer le projet SQL

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 tutoriel, vous devez avoir accès à une instance d'Azure SQL ou de SQL Server. Vous pouvez développer localement et gratuitement avec l'édition SQL Server Développeur sur Windows ou dans des conteneurs.

Option 1 : créer un projet SQL à partir d’une base de données existante

Étape 1 : créer un nouveau projet SQL à partir d'une base de données existante

Dans l'explorateur d'objets SQL Server de Visual Studio, cliquez avec le bouton droit sur la base de données à partir de laquelle vous souhaitez créer un projet et sélectionnez Créer un projet….

Capture d’écran de la boîte de dialogue Importer une base de données dans Visual Studio.

Dans la boîte de dialogue Créer un projet, 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. Les paramètres d'importation par défaut permettent d'importer les objets dans des dossiers par schéma, puis par type d'objet. Vous pouvez modifier les paramètres d'importation pour changer la structure des dossiers ou pour inclure des autorisations dans les objets importés. Démarrer l'importation.

Pendant l'importation, la progression est affichée sous forme de messages dans la boîte de dialogue Importer la base de données. Lorsque l'importation est terminée, les objets importés sont visibles dans l'Explorateur de solutions et les journaux sont stockés dans un fichier dans le répertoire du projet sous Import Schema Logs. Sélectionnez Terminer.

L’option 1 n’est pas disponible pour la ligne de commande. Utilisez options 2 à la place.

Dans la vue de l'explorateur d'objets de base de données dans VS Code ou Azure Data Studio, sélectionnez une base de données à partir de laquelle vous souhaitez créer un projet. Cliquez avec le bouton droit sur la base de données, puis sélectionnez Créer un projet à partir d’une base de données.

Capture d’écran de la boîte de dialogue Créer un projet à partir de la base de données dans Azure Data Studio.

Dans Azure Data Studio, la boîte de dialogue Créer un projet à partir d'une base de données requiert la sélection du nom et de l'emplacement du projet. Les paramètres d'importation par défaut permettent d'importer les objets dans des dossiers par schéma, puis par type d'objet. Vous pouvez sélectionner une structure de dossier différente ou inclure des autorisations dans les objets importés avant de sélectionner Créer.

Dans VS Code, les invites de commande demandent le nom et l'emplacement du projet. Les paramètres d'importation par défaut permettent d'importer les objets dans des dossiers par schéma, puis par type d'objet. Vous pouvez sélectionner une structure de dossier différente ou inclure des autorisations dans les objets importés avant le début de l’importation.

Ouvrez la vue Projets de base de données pour voir le nouveau projet et les définitions d'objets importés.

L’option 1 n’est pas disponible pour la ligne de commande. Utilisez options 2 à la place.

Étape 2 : Générer le projet SQL

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).

L’option 1 n’est pas disponible pour la ligne de commande. Utilisez options 2 à la place.

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).

L’option 1 n’est pas disponible pour la ligne de commande. Utilisez options 2 à la place.

Option 2 : créer un projet SQL vide et importer des objets à partir d'une base de données existante

Les étapes de création du projet et d'importation des objets peuvent également être effectuées séparément.

Étape 1 : Créer un nouveau projet SQL vide

Nous débutons notre projet en créant un projet de base de données SQL avant d'y importer nos objets.

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.

Capture d’écran de la boîte de dialogue Nouveau projet.

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).

Capture d’écran de la boîte de dialogue Nouveau projet.

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.

Capture d'écran du nouveau viewlet.

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 : importer des objets à partir d’une base de données existante

Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nœud du projet et sélectionnez Importer -> base de données…. Si cette option est désactivée, il se peut que des objets aient été créés dans votre projet de base de données. Vous pouvez supprimer les objets ou créer un projet.

Dans la boîte de dialogue Importer une base de données, sélectionnez la connexion à la base de données à partir de laquelle vous souhaitez importer des objets. Si vous vous êtes connecté à la base de données dans l'explorateur d'objets SQL Server, elle est présente dans l’historique.

Capture d’écran de la boîte de dialogue Importer une base de données dans Visual Studio.

Les paramètres d'importation par défaut permettent d'importer les objets dans des dossiers par schéma, puis par type d'objet. Vous pouvez modifier les paramètres d'importation pour changer la structure des dossiers ou pour inclure des autorisations dans les objets importés. Démarrer l'importation.

Pendant l'importation, la progression est affichée sous forme de messages dans la boîte de dialogue Importer la base de données. Lorsque l'importation est terminée, les objets importés sont visibles dans l'Explorateur de solutions et les journaux sont stockés dans un fichier dans le répertoire du projet sous Import Schema Logs. Sélectionnez Terminer pour rendre le projet.

Nous allons utiliser CLI SqlPackage pour importer des objets d’une base de données existante vers le nouveau projet de base de données SQL que nous avons créé dans Visual Studio à l’étape 1. La commande SqlPackage suivante importe le schéma d'une base de données vers un dossier MyDatabaseProject organisé par dossiers imbriqués de schémas et de types d'objets.

sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType

Lorsque ces dossiers sont placés dans un dossier de projet de base de données SQL de style SDK, ils sont automatiquement inclus dans le projet sans avoir à les importer ou à modifier le fichier projet SQL.

Remarque

L'extension SQL Database Projects dans VS Code ne permet pas d'importer des objets d'une base de données dans un projet. Utilisez l'extension SQL Database Projects dans Azure Data Studio pour importer des objets d'une base de données ou suivez l'option 1 pour créer un projet à partir d'une base de données existante dans VS Code.

Dans l'extension SQL Database Projects d'Azure Data Studio, ouvrez la vue Projets de base de données. Cliquez avec le bouton droit sur le nœud du projet et sélectionnez Mettre à jour le projet à partir de la base de données.

Capture d'écran de la boîte de dialogue Mise à jour de la base de données dans Azure Data Studio.

Dans la boîte de dialogue Mettre à jour la base de données, sélectionnez la connexion à la base de données à partir de laquelle vous souhaitez importer des objets. Si vous vous êtes connecté à la base de données dans la vue Connexions, elle est présente dans l'historique.

Sélectionnez soit Afficher les modifications dans la comparaison de schémas pour examiner et choisir un sous-ensemble d'objets à importer, soit Appliquer toutes les modifications pour importer tous les objets.

L'interface CLI SqlPackage peut être utilisée pour extraire le schéma d'une base de données existante dans un fichier .dacpac ou dans des fichiers .sql individuels. La commande SqlPackage suivante extrait le schéma d'une base de données dans des fichiers .sql organisés par dossiers imbriqués de schémas et de types d'objets.

sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType

Lorsque ces dossiers sont placés dans un dossier de projet de base de données SQL de style SDK, ils sont automatiquement inclus dans le projet sans avoir à les importer ou à modifier le fichier projet SQL.

Étape 3 : Générer le projet SQL

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).