分享方式:


SQL Database Projects 延伸模組

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

包含預先部署和部署後指令碼以及資料庫物件的 SQL 資料庫專案的摘要。

延伸模組功能

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

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

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

觀看這段簡短的 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 延伸模組。 選取可用的延伸模組,檢視詳細資料。

    螢幕擷取畫面,顯示 Azure Data Studio、安裝延伸模組。

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

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

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

注意

建議搭配 SQL Database Projects 延伸模組一同安裝 Schema Compare 延伸模組,以取得完整功能。

Visual Studio Code

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

相依性

SQL Database Projects 延伸模組對 .NET SDK (必要) 和 AutoRest.Sql (選擇性) 有相依性。

.NET SDK

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

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

dotnet --list-sdks

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

常見問題

來源清單中缺少 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 Database Projects 延伸模組使用 v6.x 版本的 .NET SDK (如安裝多個版本),請新增 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 陣列會列出 [總管] 窗格中包含的所有資料夾,而 settings 內的 dataworkspace.excludedProjects 陣列則會列出排除於 [專案] 窗格之外的所有 SQL 專案。

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