SQL-databasprojekttillägget

SQL Database Projects-tillägget är ett Azure Data Studio- och Visual Studio Code-tillägg för utveckling av SQL-databaser i en projektbaserad utvecklingsmiljö. Kompatibla databaser är SQL Server, Azure SQL Database, Azure SQL Managed Instance och Azure Synapse SQL. Ett SQL-projekt är en lokal representation av SQL-objekt som utgör schemat för en enskild databas, till exempel tabeller, lagrade procedurer eller funktioner. När ett SQL Database-projekt skapas är utdataartefakten en .dacpac-fil . Nya och befintliga databaser kan uppdateras så att de matchar innehållet i .dacpac genom att publicera SQL Database-projektet med SQL Database Projects-tillägget eller genom att publicera .dacpac med kommandoradsgränssnittet SqlPackage.

Sammanfattning av SQL Database Projects som innehåller fördistributions- och efterdistributionsskript samt databasobjekt.

Tilläggsfunktioner

SQL Database Projects-tillägget innehåller följande funktioner:

  • Skapa ett nytt tomt projekt.
  • Skapa ett nytt projekt från en ansluten databas.
  • Öppna ett projekt som tidigare skapats i Azure Data Studio, Visual Studio Code eller i SQL Server Data Tools.
  • Redigera ett projekt genom att lägga till eller ta bort objekt (tabeller, vyer, lagrade procedurer) eller anpassade skript i projektet.
  • Ordna filer/skript i mappar.
  • Lägg till referenser till systemdatabaser eller en användardacpac.
  • Skapa ett enda projekt.
  • Distribuera ett enskilt projekt.
  • Läs in anslutningsinformation (SQL Windows-autentisering) och SQLCMD-variabler från distributionsprofilen.

Följande funktioner i SQL Database Projects-tillägget är för närvarande i förhandsversion:

Titta på den här korta videon på 10 minuter för en introduktion till SQL Database Projects-tillägget i Azure Data Studio:

Installera

Du kan installera SQL Database Project-tillägget i Azure Data Studio och Visual Studio Code.

Azure Data Studio

Följ dessa steg för att installera SQL Database Project-tillägget i Azure Data Studio:

  1. Öppna tilläggshanteraren för att få åtkomst till de tillgängliga tilläggen. Det gör du genom att antingen välja tilläggsikonen eller välja Tilläggmenyn Visa .

  2. Identifiera SQL Database Projects-tillägget genom att skriva hela eller delar av namnet i sökrutan för tillägget. Välj ett tillgängligt tillägg för att visa dess information.

    Skärmbild av Azure Data Studio, Installationstillägg.

  3. Välj det tillägg du vill använda och välj installera det.

  4. Välj Läs in igen för att aktivera tillägget (krävs bara första gången du installerar ett tillägg).

  5. Välj ikonen Projekt i aktivitetsfältet.

Kommentar

Vi rekommenderar att du installerar tillägget Schema Compare tillsammans med SQL Database Projects-tillägget för fullständig funktionalitet.

Visual Studio-koden

SQL Database Projects-tillägget installeras med mssql-tillägget för Visual Studio Code.

Beroenden

SQL Database Projects-tillägget har ett beroende av .NET SDK (krävs) och AutoRest.Sql (valfritt).

.NET SDK

.NET SDK krävs för projektversionsfunktioner och du uppmanas att installera .NET SDK om en version som stöds inte kan identifieras av tillägget. .NET SDK kan laddas ned och installeras för Windows, macOS och Linux.

Om du vill kontrollera installerade versioner av dotnet SDK öppnar du en terminal och kör följande kommando:

dotnet --list-sdks

När du har installerat .NET SDK är din miljö redo att använda SQL Database Projects-tillägget.

Vanliga problem

Nuget.org saknas i listan över källor kan resultera i felmeddelanden som:

  • 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

Om du vill kontrollera om nuget.org är registrerad som källa kör dotnet nuget list source du från kommandoraden och granskar resultatet för ett [Enabled] objekt som refererar till nuget.org. Om nuget.org inte är registrerad som källa kör du dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org.

.NET SDK-versioner som inte stöds kan resultera i felmeddelanden som:

  • 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]_ (där den länkade nonexisting-filen har en omatchad avslutande hakparentes).

Om du vill tvinga SQL Database Projects-tillägget att använda v6.x-versionen av .NET SDK när flera versioner har installerats lägger du till en global.json fil i mappen som innehåller SQL-projektet.

AutoRest.Sql

SQL-tillägget för AutoRest laddas ned automatiskt och används av SQL Database Projects-tillägget när ett SQL-projekt genereras från en OpenAPI-specifikationsfil.

Begränsningar

För närvarande har SQL Database Project-tillägget följande begränsningar:

  • Uppgifter (skapa/publicera) är inte användardefinierade.
  • SQLCLR-objekt i projekt stöds inte.
  • Kodanalysregler för projekt stöds inte just nu.

Arbetsyta

SQL-databasprojekt finns i en logisk arbetsyta i Azure Data Studio och Visual Studio Code. En arbetsyta hanterar mapparna som visas i utforskarfönstret. Alla SQL-projekt i mapparna som är öppna på den aktuella arbetsytan är tillgängliga i SQL Database Projects-vyn som standard.

Du kan lägga till och ta bort projekt manuellt från en arbetsyta via gränssnittet i fönstret Projekt . Inställningarna för en arbetsyta kan redigeras manuellt i .code-workspace filen om det behövs.

I följande exempelfil .code-workspace visar matrisen folders alla mappar som ingår i Explorer-fönstret och matrisen dataworkspace.excludedProjects i settings listar alla SQL-projekt som undantas från fönstret Projekt .

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