Rozšíření SQL Database Projects
Rozšíření SQL Database Projects je rozšíření Azure Data Studio a Visual Studio Code pro vývoj databází SQL v projektovém vývojovém prostředí. Mezi kompatibilní databáze patří SQL Server, Azure SQL Database, Azure SQL Managed Instance a Azure Synapse SQL. Projekt SQL je místní reprezentace objektů SQL, které tvoří schéma pro jednu databázi, jako jsou tabulky, uložené procedury nebo funkce. Při sestavení projektu služby SQL Database je výstupní artefakt soubor .dacpac . Nové a existující databáze je možné aktualizovat tak, aby odpovídaly obsahu souboru .dacpac publikováním projektu služby SQL Database s rozšířením projektů služby SQL Database nebo publikováním souboru .dacpac s rozhraním příkazového řádku SqlPackage.
Funkce rozšíření
Rozšíření Sql Database Projects poskytuje následující funkce:
- Vytvořte nový prázdný projekt.
- Vytvořte nový projekt z připojené databáze.
- Otevřete projekt vytvořený dříve v nástroji Azure Data Studio, Visual Studio Code nebo v SQL Server Data Tools.
- Upravte projekt přidáním nebo odebráním objektů (tabulek, zobrazení, uložených procedur) nebo vlastních skriptů v projektu.
- Uspořádejte soubory nebo skripty ve složkách.
- Přidejte odkazy na systémové databáze nebo dacpac uživatele.
- Vytvořte jeden projekt.
- Nasazení jednoho projektu
- Načtěte podrobnosti o připojení (ověřování SYSTÉMU SQL Windows) a proměnné SQLCMD z profilu nasazení.
V současné době jsou ve verzi Preview následující funkce rozšíření Projekty služby SQL Database:
- Vytvořte nové projekty ze souboru specifikace OpenAPI .
- Projekty SQL ve stylu sady SDK (Microsoft.Build.Sql)
Podívejte se na toto krátké 10minutové video s úvodem k rozšíření SQL Database Projects v Nástroji Azure Data Studio:
Instalace
Rozšíření projektu služby SQL Database můžete nainstalovat v nástroji Azure Data Studio a editoru Visual Studio Code.
Azure Data Studio
Pokud chcete nainstalovat rozšíření projektu SLUŽBY SQL Database v nástroji Azure Data Studio, postupujte takto:
Otevřete správce rozšíření pro přístup k dostupným rozšířením. Uděláte to tak, že buď vyberete ikonu rozšíření, nebo v nabídce Zobrazení vyberete Rozšíření.
Určete rozšíření projektů služby SQL Database zadáním celého názvu nebo jeho části do vyhledávacího pole rozšíření. Výběrem dostupného rozšíření zobrazíte jeho podrobnosti.
Vyberte požadované rozšíření a zvolte možnost Nainstalovat .
Výběrem možnosti Znovu načíst rozšíření povolte (vyžaduje se pouze při první instalaci rozšíření).
Na panelu aktivit vyberte ikonu Projekty.
Poznámka:
Doporučuje se nainstalovat rozšíření Schema Compare spolu s rozšířením projektů služby SQL Database pro úplné funkce.
Visual Studio Code
Rozšíření SQL Database Projects je nainstalované s rozšířením mssql pro Visual Studio Code.
Závislosti
Rozšíření Sql Database Projects má závislost na sadě .NET SDK (povinné) a AutoRest.Sql (volitelné).
.NET SDK
Sada .NET SDK se vyžaduje pro funkci sestavení projektu a zobrazí se výzva k instalaci sady .NET SDK, pokud rozšíření nedokáže zjistit podporovanou verzi. Sadu .NET SDK je možné stáhnout a nainstalovat pro Windows, macOS a Linux.
Pokud chcete zkontrolovat aktuálně nainstalované verze sady dotnet SDK, otevřete terminál a spusťte následující příkaz:
dotnet --list-sdks
Po instalaci sady .NET SDK je vaše prostředí připravené k použití rozšíření SQL Database Projects.
Běžné problémy
Nuget.org, že v seznamu zdrojů chybí, může dojít k chybám, jako jsou:
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
Pokud chcete zkontrolovat, jestli je nuget.org zaregistrovaný jako zdroj, spusťte dotnet nuget list source
z příkazového řádku a zkontrolujte výsledky [Enabled]
pro položku odkazující na nuget.org. Pokud nuget.org není zaregistrovaný jako zdroj, spusťte dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
příkaz .
Nepodporované verze sady .NET SDK můžou mít za následek chybové zprávy, například:
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]_
(kde propojený neexistující soubor obsahuje chybějící hranatou hranatou závorku).
Chcete-li vynutit, aby rozšíření PROJEKTY SLUŽBY SQL Database používalo verzi sady .NET SDK verze v6.x při instalaci více verzí, přidejte do složky, která obsahuje projekt SQL, soubor global.json .
AutoRest.Sql
Rozšíření SQL pro AutoRest se automaticky stáhne a použije rozšíření projektů SLUŽBY SQL Database při vygenerování projektu SQL ze souboru specifikace OpenAPI.
Omezení
V současné době má rozšíření projektu služby SQL Database následující omezení:
- Úlohy (sestavení/publikování) nejsou definované uživatelem.
- Objekty SQLCLR v projektech nejsou podporovány.
- Pravidla analýzy kódu v projektech se v tuto chvíli nepodporují.
Pracovní prostor
Projekty databáze SQL jsou obsažené v logickém pracovním prostoru v nástroji Azure Data Studio a editoru Visual Studio Code. Pracovní prostor spravuje složky viditelné v podokně Průzkumník. Všechny projekty SQL v rámci složek otevřených v aktuálním pracovním prostoru jsou ve výchozím nastavení k dispozici v zobrazení Projekty služby SQL Database.
Projekty můžete ručně přidávat a odebírat z pracovního prostoru prostřednictvím rozhraní v podokně Projekty . Nastavení pracovního prostoru je možné v případě potřeby ručně upravit v .code-workspace
souboru.
V následujícím ukázkovém .code-workspace
souboru folders
obsahuje pole seznam všech složek zahrnutých v podokně Průzkumník a dataworkspace.excludedProjects
pole v seznamu settings
všech projektů SQL vyloučených z podokna Projekty .
{
"folders": [
{
"path": "."
},
{
"name": "WideWorldImportersDW",
"path": "..\\WideWorldImportersDW"
}
],
"settings": {
"dataworkspace.excludedProjects": [
"AdventureWorksLT.sqlproj"
]
}
}