SQL databaseprojecten-extensie
De extensie SQL Database Projects is een Azure Data Studio- en Visual Studio Code-extensie voor het ontwikkelen van SQL-databases in een ontwikkelomgeving op basis van een project. Compatibele databases zijn ONDER andere SQL Server, Azure SQL Database, Azure SQL Managed Instance en Azure Synapse SQL. Een SQL-project is een lokale weergave van SQL-objecten die deel uitmaken van het schema voor één database, zoals tabellen, opgeslagen procedures of functies. Wanneer een SQL Database-project is gebouwd, is het uitvoerartefact een DACPAC-bestand . Nieuwe en bestaande databases kunnen worden bijgewerkt zodat deze overeenkomen met de inhoud van de DACPAC door het SQL Database-project te publiceren met de extensie SQL Database Projects of door de .dacpac te publiceren met de opdrachtregelinterface SqlPackage.
Extensiefuncties
De extensie SQL Database Projects biedt de volgende functies:
- Maak een nieuw, leeg project.
- Maak een nieuw project op basis van een verbonden database.
- Open een project dat eerder is gemaakt in Azure Data Studio, Visual Studio Code of in SQL Server Data Tools.
- Bewerk een project door objecten (tabellen, weergaven, opgeslagen procedures) of aangepaste scripts in het project toe te voegen of te verwijderen.
- Bestanden/scripts ordenen in mappen.
- Voeg verwijzingen toe naar systeemdatabases of een gebruikers-dacpac.
- Bouw één project.
- Eén project implementeren.
- Laad verbindingsdetails (SQL Windows-verificatie) en SQLCMD-variabelen uit het implementatieprofiel.
De volgende functies in de sql Database Projects-extensie zijn momenteel beschikbaar als preview-versie:
- Nieuwe projecten maken op basis van een OpenAPI-specificatiebestand .
- SQL-projecten in SDK-stijl (Microsoft.Build.Sql).
Bekijk deze korte video van 10 minuten voor een inleiding tot de extensie SQL Database Projects in Azure Data Studio:
Installeren
U kunt de SQL Database Project-extensie installeren in Azure Data Studio en Visual Studio Code.
Azure Data Studio
Voer de volgende stappen uit om de SQL Database Project-extensie te installeren in Azure Data Studio:
Open het uitbreidingsbeheer om toegang te krijgen tot de beschikbare extensies. Hiervoor selecteert u het uitbreidingspictogram of selecteert u Extensies in het menu Beeld.
Identificeer de extensie SQL Database Projects door de naam of een deel van de naam in het zoekvak van de extensie te typen. Selecteer een beschikbare extensie om de details ervan weer te geven.
Selecteer de gewenste extensie en kies ervoor om deze te installeren .
Selecteer Opnieuw laden om de extensie in te schakelen (alleen de eerste keer dat u een extensie installeert).
Selecteer het pictogram Projecten op de activiteitenbalk.
Notitie
Het is raadzaam om de extensie Schema vergelijken naast de extensie SQL Database Projects te installeren voor volledige functionaliteit.
Visual Studio Code
De SQL Database Projects-extensie wordt geïnstalleerd met de mssql-extensie voor Visual Studio Code.
Afhankelijkheden
De extensie SQL Database Projects is afhankelijk van de .NET SDK (vereist) en AutoRest.Sql (optioneel).
.NET SDK
De .NET SDK is vereist voor projectbuildfunctionaliteit en u wordt gevraagd om de .NET SDK te installeren als een ondersteunde versie niet kan worden gedetecteerd door de extensie. De .NET SDK kan worden gedownload en geïnstalleerd voor Windows, macOS en Linux.
Als u momenteel geïnstalleerde versies van de dotnet SDK wilt controleren, opent u een terminal en voert u de volgende opdracht uit:
dotnet --list-sdks
Nadat u de .NET SDK hebt geïnstalleerd, is uw omgeving klaar om de extensie SQL Database Projects te gebruiken.
Algemene problemen
Nuget.org ontbreekt in de lijst met bronnen, kan dit leiden tot foutberichten zoals:
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
Als u wilt controleren of nuget.org is geregistreerd als bron, voert u deze uit dotnet nuget list source
vanaf de opdrachtregel en bekijkt u de resultaten voor een [Enabled]
item dat verwijst naar nuget.org. Als nuget.org niet is geregistreerd als bron, voert u het volgende uit dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
.
Niet-ondersteunde .NET SDK-versies kunnen leiden tot foutberichten zoals:
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]_
(waarbij het gekoppelde niet-bestaande bestand een niet-overeenkomende vierkante haak sluiten heeft).
Als u wilt afdwingen dat de extensie SQL Database Projects de v6.x-versie van de .NET SDK gebruikt wanneer er meerdere versies zijn geïnstalleerd, voegt u een global.json-bestand toe aan de map die het SQL-project bevat.
AutoRest.Sql
De SQL-extensie voor AutoRest wordt automatisch gedownload en gebruikt door de extensie SQL Database Projects wanneer een SQL-project wordt gegenereerd op basis van een OpenAPI-specificatiebestand.
Beperkingen
Op dit moment heeft de SQL Database Project-extensie de volgende beperkingen:
- Taken (build/publish) zijn niet door de gebruiker gedefinieerd.
- SQLCLR-objecten in projecten worden niet ondersteund.
- Codeanalyseregels voor projecten worden momenteel niet ondersteund.
Werkplek
SQL-databaseprojecten bevinden zich in een logische werkruimte in Azure Data Studio en Visual Studio Code. Een werkruimte beheert de mappen die zichtbaar zijn in het deelvenster Explorer. Alle SQL-projecten in de mappen die in de huidige werkruimte zijn geopend, zijn standaard beschikbaar in de weergave SQL Database Projects.
U kunt projecten handmatig toevoegen aan en verwijderen uit een werkruimte via de interface in het deelvenster Projecten . De instellingen voor een werkruimte kunnen indien nodig handmatig worden bewerkt in het .code-workspace
bestand.
In het volgende voorbeeldbestand .code-workspace
bevat de folders
matrix alle mappen die zijn opgenomen in het deelvenster Explorer en de dataworkspace.excludedProjects
matrix in een lijst met settings
alle SQL-projecten die zijn uitgesloten van het deelvenster Projecten .
{
"folders": [
{
"path": "."
},
{
"name": "WideWorldImportersDW",
"path": "..\\WideWorldImportersDW"
}
],
"settings": {
"dataworkspace.excludedProjects": [
"AdventureWorksLT.sqlproj"
]
}
}