Extension des projets SQL Database

L’extension SQL Database Projects est une extension pour Azure Data Studio et Visual Studio Code qui permet de développer des bases de données SQL dans un environnement de développement basé sur un projet. Les bases de données compatibles incluent SQL Server, Azure SQL Database, Azure SQL Managed Instance et Azure Synapse SQL. Un projet SQL 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. Quand un projet SQL Database est généré, l’artefact de sortie est un fichier .dacpac. Les bases de données nouvelles et existantes peuvent être mises à jour afin de correspondre au contenu du fichier .dacpac en publiant le projet SQL Database avec l’extension SQL Database Projects ou en publiant le fichier .dacpac avec l’interface de ligne de commande SqlPackage.

Résumé de SQL Database Projects contenant des scripts de prédéploiement et de post-déploiement, ainsi que des objets de base de données.

Fonctionnalités de l’extension

L’extension Projets SQL Database fournit les fonctionnalités suivantes :

  • Créer un nouveau projet vide.
  • Créer un projet à partir d’une base de données connectée.
  • Ouvrez un projet créé précédemment dans Azure Data Studio, Visual Studio Code ou dans SQL Server Data Tools.
  • Modifiez un projet en ajoutant ou en supprimant des objets (tables, affichages, procédures stockées) ou des scripts personnalisés dans le projet.
  • Organisez les fichiers/scripts dans des dossiers.
  • Ajoutez des références aux bases de données système ou au package d’application de la couche Données d’un utilisateur.
  • Générez un projet unique.
  • Déployez un projet unique.
  • Chargez les détails de connexion (authentification Windows SQL) et les variables SQLCMD à partir du profil de déploiement.

Voici les fonctionnalités de l’extension SQL Database Projects actuellement disponibles en préversion :

Regardez cette courte vidéo (10 minutes) qui présente l’extension SQL Database Projects d’Azure Data Studio :

Installer

Vous pouvez installer l’extension SQL Database Project dans Azure Data Studio et Visual Studio Code.

Azure Data Studio

Pour installer l’extension SQL Database Project dans Azure Data Studio, procédez comme suit :

  1. Ouvrez le gestionnaire d’extensions pour accéder aux extensions disponibles. Pour cela, sélectionnez l’icône des extensions ou l’option Extensions dans le menu Affichage.

  2. Identifiez l’extension des projets SQL Database en tapant tout ou partie du nom dans la zone de recherche de l’extension. Sélectionnez une extension disponible pour afficher ses détails.

    Capture d’écran de l’installation de l’extension dans Azure Data Studio.

  3. Sélectionnez l’extension de votre choix et installez-la.

  4. Sélectionnez Recharger pour activer l’extension (nécessaire uniquement la première fois que vous installez une extension).

  5. Sélectionnez l’icône Projets dans la barre d’activité.

Notes

Il est recommandé d’installer l’extension de Comparaison de schémas avec l’extension des projets SQL Database pour bénéficier de toutes les fonctionnalités.

Visual Studio Code

L’extension SQL Database Projects est installée avec l’extension mssql pour Visual Studio Code.

Les dépendances

L’extension SQL Database Projects a une dépendance sur le kit SDK .NET et AutoRest.Sql (facultatif).

Kit de développement logiciel (SDK) .NET

Le kit SDK .NET est requis pour la fonctionnalité de génération de projet. Vous êtes invité à l’installer si une version prise en charge ne peut pas être détectée par l’extension. Le SDK .NET peut être téléchargé et installé pour Windows, macOS et Linux.

Si vous souhaitez vérifier les versions actuellement installées du kit de développement logiciel (SDK) dotnet, ouvrez un terminal et exécutez la commande suivante :

dotnet --list-sdks

Après avoir installé le kit SDK .NET, votre environnement est prêt à utiliser l’extension SQL Database Projects.

Problèmes courants

Si nuget.org manque dans la liste des sources, cela peut entraîner des messages d’erreur de ce type :

  • error MSB4236: The SDK 'Microsoft.Build.Sql/0.1.9-preview' specified could not be found.
  • Unable to find package Microsoft.Build.Sql. No packages exist with this id in source(s): Microsoft Visual Studio Offline Packages

Pour vérifier si nuget.org est inscrit en tant que source, exécutez dotnet nuget list source à partir de la ligne de commande et passez en revue les résultats de l’élément [Enabled] qui référence nuget.org. Si nuget.org n’est pas inscrit en tant que source, exécutez dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org.

Les versions du SDK .NET non prises en charge peuvent entraîner des messages d’erreur comme :

  • error MSB4018: The "SqlBuildTask" task failed unexpectedly.
  • error MSB4018: System.TypeInitializationException: The type initializer for 'SqlSchemaModelStaticState' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. [c:\Users\ .sqlproj]_ (où le fichier inexistant lié a un crochet fermant sans correspondance).

Pour forcer l’extension SQL Database Projects à utiliser la version 6.x du kit SDK .NET quand plusieurs versions sont installées, ajoutez un fichier global.json au dossier qui contient le projet SQL.

AutoRest.Sql

L’extension SQL pour AutoRest est automatiquement téléchargée et utilisée par l’extension SQL Database Projects quand un projet SQL est généré à partir d’un fichier de spécification OpenAPI.

Limites

Actuellement, l’extension SQL Database Project présente les limitations suivantes :

  • Les tâches (génération/publication) ne sont pas définies par l’utilisateur.
  • Les objets SQLCLR dans les projets ne sont pas pris en charge.
  • Les règles d’analyse du code sur les projets ne sont pas prises en charge actuellement.

Espace de travail

Les projets de base de données SQL sont contenus dans un espace de travail logique dans Azure Data Studio et Visual Studio Code. Un espace de travail gère les dossiers visibles dans le volet de l’Explorateur. Tous les projets SQL situés dans les dossiers ouverts dans l’espace de travail actuel sont disponibles dans la vue SQL Database Projects par défaut.

Vous pouvez ajouter et supprimer manuellement des projets d’un espace de travail via l’interface du volet Projets. Les paramètres d’un espace de travail peuvent être modifiés manuellement dans le fichier .code-workspace, si nécessaire.

Dans l’exemple de fichier .code-workspace ci-dessous, le tableau folders répertorie tous les dossiers inclus dans le volet Explorer et le tableau dataworkspace.excludedProjects dans settings répertorie tous les projets SQL exclus du volet Projets.

{
  "folders": [
    {
      "path": "."
    },
    {
      "name": "WideWorldImportersDW",
      "path": "..\\WideWorldImportersDW"
    }
  ],
  "settings": {
    "dataworkspace.excludedProjects": [
      "AdventureWorksLT.sqlproj"
    ]
  }
}