Partager via


Extension des projets de base de données SQL

Important

Azure Data Studio sera mis hors service le 28 février 2026. Nous vous recommandons d’utiliser Visual Studio Code. Pour plus d’informations sur la migration vers Visual Studio Code, visitez Qu’est-ce qui se passe dans Azure Data Studio ?

L’extension Projets SQL Database est une extension Visual Studio Code pour le développement de 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, Warehouse in Fabric et SQL Database dans Fabric. Un projet SQL est une représentation locale d’objets SQL qui composent le schéma d’une base de données unique, comme les tables, les procédures stockées ou les fonctions. Lorsque vous générez un projet SQL Database, vous créez un .dacpac fichier. Vous pouvez mettre à jour les bases de données nouvelles et existantes pour qu’elles correspondent au contenu du .dacpac projet SQL Database en publiant le projet SQL Database avec l’extension Projets SQL Database ou en publiant l’interface .dacpac de ligne de commande SqlPackage .

Capture d’écran du résumé des projets SQL Database contenant des scripts de prédéploiement et de post-déploiement, ainsi que des objets de base de données.

Pour plus d’informations sur les concepts des projets SQL, consultez Présentation des projets de base de données SQL ?

Fonctionnalités d’extension

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

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

Installez

Vous pouvez installer l’extension sql Database Project dans Visual Studio Code.

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

Dépendances

L’extension Projets SQL Database dépend du Kit de développement logiciel (SDK) .NET (obligatoire) et de AutoRest.Sql (facultatif).

Kit de développement logiciel (SDK) .NET

L’extension nécessite le Kit de développement logiciel (SDK) .NET pour la fonctionnalité de génération de projet. Si l’extension ne peut pas détecter une version prise en charge, elle vous invite à installer le Kit de développement logiciel (SDK) .NET. Vous pouvez télécharger et installer le Kit de développement logiciel (SDK) .NET pour Windows, macOS et Linux.

Pour 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 de développement logiciel (SDK) .NET, votre environnement est prêt à utiliser l’extension Projets SQL Database.

Problèmes courants

  • L'absence de nuget.org dans la liste des sources peut entraîner des messages d’erreur tels que :

    • 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 d’un [Enabled] élément référençant 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 Kit de développement logiciel (SDK) .NET non prises en charge peuvent entraîner des messages d’erreur tels que :

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

    Vous pouvez forcer l’extension Projets SQL Database à utiliser la version v6.x du Kit de développement logiciel (SDK) .NET lorsque plusieurs versions sont installées. Pour ce faire, ajoutez un fichier global.json au dossier qui contient le projet SQL.

Pour plus d’informations sur la résolution des problèmes de génération de projets SQL, consultez Résoudre les problèmes de génération de projet SQL.

SQLCLR

Visual Studio Code ne prend pas en charge les objets SQLCLR dans les projets de base de données, car ces objets s’appuient sur .NET Framework et l’extension Sql Database Projects utilise .NET pour générer des projets.

Workspace

Les projets de base de données SQL sont contenus dans un espace de travail logique (dossier) dans Visual Studio Code. Par défaut, vous pouvez accéder à tous les projets SQL dans les dossiers ouverts dans l’espace de travail actuel dans l’affichage Projets SQL Database .

Vous pouvez ajouter et supprimer manuellement des projets d’un espace de travail via l’interface dans le volet Projets . Vous pouvez modifier manuellement les paramètres d’un espace de travail dans le .code-workspace fichier, si nécessaire.

Dans l’exemple .code-workspace de fichier suivant, le folders tableau répertorie tous les dossiers inclus dans le volet Explorateur. Le dataworkspace.excludedProjects tableau dans la settings liste répertorie tous les projets SQL exclus du volet Projets .

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