Estensione progetti di database SQL

L'estensione progetti di database SQL è un'estensione Azure Data Studio e Visual Studio Code per lo sviluppo di database SQL in un ambiente di sviluppo basato su progetto. I database compatibili comprendono SQL Server, Database SQL di Azure, Istanza gestita di SQL di Azure e Azure Synapse SQL. Un progetto SQL è una rappresentazione locale degli oggetti SQL che costituiscono lo schema di un database singolo, ad esempio tabelle, stored procedure o funzioni. Quando viene compilato un progetto di database SQL, l'artefatto di output è un file con estensione dacpac. I database nuovi ed esistenti possono essere aggiornati in modo che corrispondano al contenuto di .dacpac pubblicando il progetto di database SQL con l'estensione progetti database SQL o pubblicando il file con estensione dacpac con l'interfaccia della riga di comando SqlPackage.

Riepilogo dei progetti di database SQL contenenti script di pre-distribuzione e post-distribuzione, nonché oggetti di database.

Funzionalità dell'estensione

L'estensione progetti di database SQL offre le funzionalità seguenti:

  • Creare un nuovo progetto vuoto.
  • Creare un nuovo progetto da un database connesso.
  • Aprire un progetto creato in precedenza in Azure Data Studio, Visual Studio Code o SQL Server Data Tools.
  • Modificare un progetto aggiungendo o rimuovendo oggetti (tabelle, viste, stored procedure) o script personalizzati nel progetto.
  • Organizzare file/script in cartelle.
  • Aggiungere riferimenti a database di sistema o al pacchetto di applicazione livello dati di un utente.
  • Compilare un progetto singolo.
  • Distribuire un progetto singolo.
  • Caricare i dettagli della connessione (autenticazione di Windows per SQL) e le variabili di SQLCMD dal profilo di distribuzione.

Le funzionalità seguenti nell'estensione progetti di database SQL sono attualmente in anteprima:

Guardare questo breve video di 10 minuti per un'introduzione all'estensione progetti di database SQL in Azure Data Studio:

Installa

È possibile installare l'estensione progetti di database SQL in Azure Data Studio e Visual Studio Code.

Azure Data Studio

Per installare l'estensione progetti di database SQL in Azure Data Studio, seguire questa procedura:

  1. Aprire Gestione estensioni per accedere alle estensioni disponibili. A questo scopo, selezionare l'icona delle estensioni o selezionare Estensioni dal menu Visualizza.

  2. Identificare l'estensione progetti di database SQL digitandone il nome, per intero o in parte, nella casella di ricerca delle estensioni. Selezionare un'estensione disponibile per visualizzarne i dettagli.

    Screenshot di Azure Data Studio, installazione dell'estensione.

  3. Selezionare l'estensione desiderata e quindi Installa per installarla.

  4. Selezionare Ricarica per abilitare l'estensione (necessario solo la prima volta che si installa un'estensione).

  5. Selezionare l'icona Progetti nella barra attività.

Nota

Per usufruire della funzionalità completa, insieme all'estensione progetti di database SQL è consigliabile installare l'estensione confronto schemi.

Visual Studio Code

L'estensione progetti di database SQL viene installata con l'estensione mssql per Visual Studio Code.

Dipendenze

L'estensione progetti di database SQL ha una dipendenza da .NET SDK (necessario) e AutoRest.Sql (facoltativo).

.NET SDK

.NET SDK è necessario per la funzionalità di compilazione del progetto ed è richiesta l'installazione di .NET SDK se una versione supportata non viene rilevata dall'estensione. .NET SDK può essere scaricato e installato per Windows, macOS e Linux.

Per verificare le versioni attualmente installate di .NET SDK, aprire un terminale ed eseguire il comando seguente:

dotnet --list-sdks

Dopo aver installato .NET SDK, l'ambiente è pronto per usare l'estensione progetti di database SQL.

Problemi comuni

Nuget.org mancante nell'elenco delle origini può causare messaggi di errore, ad esempio:

  • 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

Per verificare se nuget.org è registrato come origine, eseguire dotnet nuget list source dalla riga di comando ed esaminare i risultati di un elemento [Enabled] che fa riferimento a nuget.org. Se nuget.org non è registrato come origine, eseguire dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org.

Le versioni di .NET SDK non supportate possono generare messaggi di errore, ad esempio:

  • 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]_ (dove il file collegato non esistente ha una parentesi quadra chiusa non corrispondente).

Per forzare l'estensione progetti di database SQL a usare la versione v6.x di .NET SDK in caso di installazione di più versioni, aggiungere un file global.json alla cartella che contiene il progetto SQL.

AutoRest.Sql

L'estensione SQL per AutoRest viene scaricata automaticamente e usata dall'estensione progetti di database SQL quando viene generato un progetto SQL da un file di specifica OpenAPI.

Limiti

Attualmente, l'estensione progetti di database SQL presenta le limitazioni seguenti:

  • Le attività (compilazione/pubblicazione) non sono definite dall'utente.
  • Gli oggetti SQLCLR nei progetti non sono supportati.
  • Le regole di analisi codice nei progetti non sono attualmente supportate.

Area di lavoro

I progetti di database SQL sono contenuti all'interno di un'area di lavoro logica in Azure Data Studio e Visual Studio Code. Un'area di lavoro gestisce le cartelle visibili nel riquadro Esplora. Tutti i progetti SQL all'interno delle cartelle aperte nell'area di lavoro corrente sono disponibili nella vista Progetti di database SQL per impostazione predefinita.

È possibile aggiungere e rimuovere manualmente progetti da un'area di lavoro tramite l'interfaccia del riquadro Progetti. Le impostazioni per un'area di lavoro possono essere modificate manualmente nel file .code-workspace, se necessario.

Nel file di esempio .code-workspace seguente, la matrice folders elenca tutte le cartelle incluse nel riquadro Esplora e la matrice dataworkspace.excludedProjects all'interno di settings elenca tutti i progetti SQL esclusi dal riquadro Progetti.

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