SQL Database Projects 延伸模組

SQL 資料庫 Projects 延伸模組是 Azure Data Studio 和 Visual Studio Code 擴充功能,可用於在以專案為基礎的開發環境中開發 SQL 資料庫。 相容的資料庫包括 SQL Server、Azure SQL 資料庫、Azure SQL 受控執行個體和 Azure Synapse SQL。 SQL 專案在本機代表組成單一資料庫結構描述的 SQL 物件,例如資料表、預存程序或函數。 建置SQL 資料庫專案時,輸出成品是 .dacpac 檔案。 您可以更新新的和現有的資料庫,藉由使用 SQL 資料庫 Projects 延伸模組發行SQL 資料庫專案,或使用命令列介面 SqlPackage 發佈 .dacpac ,以符合 .dacpac 的內容

Summary of SQL Database Projects containing pre-deployment and post-deployment scripts as well as database objects.

延伸模組功能

SQL Database Projects 延伸模組提供下列功能:

  • 建立新的空白專案。
  • 從連接的資料庫建立新專案。
  • 開啟先前在 Azure Data Studio、Visual Studio CodeSQL Server Data Tools 中建立的專案。
  • 新增或移除專案中的物件 (資料表、檢視、預存程序) 或自訂指令碼,來編輯專案。
  • 整理資料夾中的檔案/指令碼。
  • 對系統資料庫或使用者 dacpac 新增參考。
  • 建置單一專案。
  • 部署單一專案。
  • 從部署設定檔載入連線詳細資料 (SQL Windows 驗證) 與 SQLCMD 變數。

SQL 資料庫 Projects 延伸模組中的下列功能目前為預覽狀態:

觀看這段簡短的 10 分鐘影片,以取得 Azure Data Studio 中 SQL Database 專案延伸模組的簡介:

安裝

您可以在 Azure Data Studio 和 Visual Studio Code 中安裝 SQL Database Project 延伸模組。

Azure Data Studio

如要在 Azure Data Studio 中安裝 SQL Database Project 延伸模組,請遵循以下步驟操作:

  1. 開啟延伸模組管理員以存取可用的延伸模組。 若要這樣做,請選取延伸模組圖示,或在 [檢視] 功能表中選取 [延伸模組]。

  2. 在延伸模組搜尋方塊中鍵入延伸模組的全名或部分名稱,並找出 SQL Database Projects 延伸模組。 選取可用的延伸模組,檢視詳細資料。

    Screenshot of Azure Data Studio, Install extension.

  3. 選取您想要的延伸模組,並選擇加以安裝

  4. 選取 [重新載入],啟用此延伸模組 (只有當您第一次安裝延伸模組時才需要)。

  5. 選取活動列中的專案圖示。

注意

Visual Studio Code

SQL Database Projects 延伸模組會和 Visual Studio Code 的 mssql 延伸模組一起安裝。

相依性

SQL 資料庫 Projects 延伸模組相依于 .NET SDK(必要)和 AutoRest.Sql (選擇性)。

.NET SDK

專案建置功能需要 .NET SDK,如果延伸模組無法偵測到支援的版本,系統會提示您安裝 .NET SDK。 您可以下載並安裝適用于 Windows、macOS 和 Linux 的 .NET SDK。

如果您要檢查目前安裝版本的 dotnet SDK,請開啟終端機並執行以下命令:

dotnet --list-sdks

安裝 .NET SDK 之後,您的環境已準備好使用 SQL 資料庫 Projects 延伸模組。

常見問題

Nuget.org 來源清單中遺失,可能會導致下列錯誤訊息:

  • 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

若要檢查 nuget.org 是否已註冊為來源,請從命令列執行 dotnet nuget list source ,並檢閱參考 nuget.org 專案的結果 [Enabled] 。如果 nuget.org 未註冊為來源,請執行 dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org

不支援的 .NET SDK 版本可能會導致下列錯誤訊息:

  • 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]_ (連結的非現有檔案具有不相符的右方括弧)。

若要強制SQL 資料庫 Projects 延伸模組在安裝多個版本時使用 .NET SDK 的 v6.x 版本,請將 global.json 檔案新增 至包含 SQL 專案的資料夾。

AutoRest.Sql

系統會自動下載 AutoRest 的 SQL 延伸模組,並由 SQL Database Projects 延伸模組在有 SQL 專案從 OpenAI 規格檔案產生時使用。

限制

目前,SQL Database Project 延伸模組有下列限制:

  • 工作 (組建/發佈) 並非使用者定義。
  • 不支援專案中的 SQLCLR 物件。
  • 目前不支援專案的程式碼分析規則。

工作區

Azure Data Studio 和 Visual Studio Code 中的 SQL Database Projects 都包含在邏輯工作區內。 工作區會管理可在 [總管] 窗格中顯示的資料夾。 根據預設,您可從 SQL Database Projects 檢視取用所有在目前工作區中開啟的資料夾內 SQL 專案。

您可藉由 [專案] 窗格從工作區手動新增和移除專案。 如有必要,可以在 .code-workspace 檔案中手動編輯工作區的設定。

在下列範例 .code-workspace 檔案中 folders ,陣列會列出 [總管] 窗格中包含的所有資料夾,而 dataworkspace.excludedProjects 陣列內的 settings 陣列會列出所有從 [專案 ] 窗格排除的 SQL 專案。

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

下一步