SQL 資料庫專案快速入門
適用於:SQL Server 2022 (16.x) Azure SQL 資料庫 Azure SQL 受控執行個體
SQL 資料庫專案在本機代表組成單一資料庫結構描述的 SQL 物件,例如資料表、預存程序或函式。 SQL 資料庫專案的開發週期可讓資料庫開發整合到持續整合和持續部署 (CI/CD) 工作流程中,成為開發的最佳做法。
本文逐步說明了如何建立新的 SQL 專案、將物件新增至專案,以及建置和部署專案。 除了 Visual Studio (SQL Server Data Tools) 指令之外,本指南著重於 SDK 樣式的 SQL 專案。
必要條件
# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage
# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates
注意
若要完成 SQL 資料庫專案的部署,您需要存取 Azure SQL 或 SQL Server 執行個體。 您可以在 Windows 或容器中使用 SQL Server 開發人員版本免費進行本機開發。
步驟 1:建立新的專案
我們會先建立新的 SQL 資料庫專案,再將物件手動新增其中,開始我們的專案。 還有其他方法可以建立專案,讓專案立即填入現有資料庫中的物件,例如使用結構描述比較工具。
依序選取 [檔案]、[新增],接著選取 [專案]。
在 [新增專案] 對話框中,選取搜尋框的條件 [SQL Server]。 熱門搜尋結果應該是 SQL Server 資料庫專案。
選取 [下一步] 繼續進行下一個步驟。 提供不需要符合資料庫名稱的專案名稱。 視需要驗證並修改專案位置。
選取 [建立] 以建立專案。 空白專案隨即開啟,並顯示在 [方案總管] 中以供編輯。
依序選取 [檔案]、[新增],接著選取 [專案]。
在 [新增專案] 對話框中,選取搜尋框的條件 [SQL Server]。 熱門搜尋結果應該是 SDK 樣式 SQL Server 資料庫專案 (預覽版)。
選取 [下一步] 繼續進行下一個步驟。 提供不需要符合資料庫名稱的專案名稱。 視需要驗證並修改專案位置。
選取 [建立] 以建立專案。 空白專案隨即開啟,並顯示在 [方案總管] 中以供編輯。
在 VS Code 或 Azure Data Studio 的 [資料庫專案] 檢視中,選取 [新專案] 按鈕。
第一個提示會決定要使用的專案範本,主要是根據目標平台是 SQL Server 還是 Azure SQL。 如果系統提示您選取特定版本的 SQL,請選擇符合目標資料庫的版本,但如果目標資料庫版本未知,請選擇最新版本,因為稍後可以修改該值。
在出現的文字輸入中輸入專案名稱,該名稱不需要與資料庫名稱相符。
在出現的 [選取資料夾] 對話方塊中,選取專案資料夾的目錄、.sqlproj
檔案,以及要存放在其中的其他內容。
當系統提示您是否建立 SDK 樣式專案 (預覽版) 時,請選取 [是]。
完成後,空白專案隨即開啟,並顯示在 [資料庫專案] 檢視中以供編輯。
安裝 Microsoft.Build.Sql 專案的 .NET 範本後,您可以從命令列建立新的 SQL 資料庫專案。 選項 -n
會指定專案的名稱,而選項 -tp
會指定專案目標平台。
使用選項 -h
來查看可用的選項。
# install Microsoft.Build.Sql.Templates
dotnet new sqlproject -n MyDatabaseProject
步驟 2:將物件新增至專案
在 [方案總管] 中,以滑鼠右鍵按一下專案節點並選取 [新增],然後選取 [資料表]。 [新增項目] 對話方塊隨即出現,您可以在其中指定資料表名稱。 選取 [新增] 以在 SQL 專案中建立資料表。
資料表會在 Visual Studio 資料表設計工具中開啟,其中包含範本資料表定義,您可以在其中新增資料行、索引和其他資料表屬性。 當您完成初始編輯時,請儲存檔案。
您可以透過 [新增專案] 對話方塊來新增更多資料庫物件,例如檢視、預存程序和函式。 以滑鼠右鍵按一下 [方案總管] 中的專案節點並選取 [新增],然後選取所需的物件類型,以存取對話方塊。 專案中的檔案可以透過 [新增] 下的 [新增資料夾] 選項,組織成資料夾。
在 [方案總管] 中,於專案節點上按一下滑鼠右鍵,然後依次選取 [新增]、[新增項目]。 [新增項目] 對話框隨即出現,選取 [顯示所有範本],然後選取 [資料表]。 將資料表名稱指定為檔案名稱,然後選取 [新增] 以在 SQL 專案中建立資料表。
資料表會在 Visual Studio 查詢編輯器中開啟,其中包含範本資料表定義,您可以在其中新增資料行、索引和其他資料表屬性。 當您完成初始編輯時,請儲存檔案。
您可以透過 [新增專案] 對話方塊來新增更多資料庫物件,例如檢視、預存程序和函式。 以滑鼠右鍵按一下 [方案總管] 中的專案節點並選取 [新增],然後在 [顯示所有範本] 後選取所需的物件類型。 專案中的檔案可以透過 [新增] 下的 [新增資料夾] 選項,組織成資料夾。
在 VS Code 或 Azure Data Studio 的 [資料庫專案] 檢視中,以滑鼠右鍵按一下專案節點,然後選取 [新增資料表]。 在出現的對話方塊中,指定資料表名稱。
資料表會在文字編輯器中開啟,其中包含範本資料表定義,您可以在其中新增資料行、索引和其他資料表屬性。 當您完成初始編輯時,請儲存檔案。
您可以透過專案節點上的特色選單來新增更多資料庫物件,例如檢視、預存程序和函式。 以滑鼠右鍵按一下 VS Code 或 Azure Data Studio 之 [資料庫專案] 檢視中的專案節點,然後按一下所需的物件類型,即可存取對話方塊。 專案中的檔案可以透過 [新增] 下的 [新增資料夾] 選項,組織成資料夾。
檔案可以藉由在專案目錄或巢狀資料夾中建立檔案,新增至專案。 檔案延伸模組應為 .sql
,建議依物件類型或結構描述和物件類型進行組織。
資料表的基底範本可用作在專案中建立新資料表物件的起點:
CREATE TABLE [dbo].[Table1]
(
[Id] INT NOT NULL PRIMARY KEY
)
步驟 3:建置專案
建置程序會根據專案檔中指定的目標平台,驗證物件與語法之間的關聯性。 建置程序的成品輸出是 .dacpac
檔案,可用來將專案部署到目標資料庫,並包含資料庫結構描述的編譯模型。
在 [方案總管]中,以滑鼠右鍵按一下專案節點,然後選取 [建置]。
輸出視窗會自動開啟以顯示建置程序。 若有有錯誤和警告,會顯示在 [輸出視窗] 中。 成功建置時,會建立組建成品 (.dacpac
檔案),其位置會包含在組建輸出中 (預設值為 bin\Debug\projectname.dacpac
)。
在 [方案總管]中,以滑鼠右鍵按一下專案節點,然後選取 [建置]。
輸出視窗會自動開啟以顯示建置程序。 若有有錯誤和警告,會顯示在 [輸出視窗] 中。 成功建置時,會建立組建成品 (.dacpac
檔案),其位置會包含在組建輸出中 (預設值為 bin\Debug\projectname.dacpac
)。
在 VS Code 或 Azure Data Studio 的 [資料庫專案] 檢視中,以滑鼠右鍵按一下專案節點,然後選取 [建置]。
輸出視窗會自動開啟以顯示建置程序。 若有有錯誤和警告,會顯示在 [輸出視窗] 中。 成功建置時,會建立組建成品 (.dacpac
檔案),其位置會包含在組建輸出中 (預設值為 bin/Debug/projectname.dacpac
)。
您可以使用 dotnet build
命令,從命令列建置 SQL 資料庫專案。
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
組建輸出包含任何錯誤或警告,以及發生錯誤或警告的特定檔案和行號。 成功建置時,會建立組建成品 (.dacpac
檔案),其位置會包含在組建輸出中 (預設值為 bin/Debug/projectname.dacpac
)。
步驟 4:部署專案
.dacpac
檔案中資料庫結構描述的編譯模型可以使用 SqlPackage
命令列工具或其他部署工具,部署到目標資料庫。 部署程序會決定更新目標資料庫的必要步驟,以符合 .dacpac
中所定義的結構描述,視需要根據資料庫中已經存在的物件來建立或改變物件。 因此,部署程式具有等冪性,即可以多次執行,而不會造成問題,而且您可以將相同的 .dacpac
部署至多個資料庫,而不需要預先確定其狀態。
在 [方案總管] 中,以滑鼠右鍵按一下專案節點,然後選取 [發佈...]。
[發佈] 對話方塊隨即開啟,您可以在其中建立 [目標資料庫連線]。 如果您沒有用於部署的現有 SQL 執行個體,則 LocalDB ((localdb)\MSSQLLocalDB
) 會隨 Visual Studio 一起安裝,可用於測試和開發。
指定資料庫名稱,然後選取 [發佈],將專案部署至目標資料庫,或 [產生指令碼] 以產生指令碼,以便在執行之前檢閱。
在 [方案總管] 中,以滑鼠右鍵按一下專案節點,然後選取 [發佈...]。
[發佈] 對話方塊隨即開啟,您可以在其中建立 [目標資料庫連線]。 如果您沒有用於部署的現有 SQL 執行個體,則 LocalDB ((localdb)\MSSQLLocalDB
) 會隨 Visual Studio 一起安裝,可用於測試和開發。
指定資料庫名稱,然後選取 [發佈],將專案部署至目標資料庫,或 [產生指令碼] 以產生指令碼,以便在執行之前檢閱。
在 VS Code 或 Azure Data Studio 的 [資料庫專案] 檢視中,以滑鼠右鍵按一下專案節點,然後選取 [發佈]。
提示
如果您沒有可用的 SQL 執行個體進行部署,SQL 資料庫專案延伸模組可以在新的容器中為您建立本機 SQL Server 執行個體。 執行 Docker Desktop 等容器執行階段後,請從下拉式清單中選取 [發佈至新的 SQL Server 本機開發容器]。
如果您有現有的 SQL 執行個體進行部署,請選取 [發佈至現有的 SQL Server],然後在系統提示您輸入發行設定檔時不要使用設定檔。
如果尚未設定目標資料庫的連線,系統會提示您建立新的連線。 新的連線輸入會要求提供伺服器名稱、驗證方法和資料庫名稱。
設定連線之後,部署程序就會開始。 您可以選擇自動執行部署 (發佈) 或產生指令碼,以便在執行之前檢閱指令碼 (產生指令碼)。
SqlPackage CLI 用於透過發佈動作將 .dacpac
檔案部署到目標資料庫。
例如,若要根據連接字串將 .dacpac
檔案部署到目標資料庫:
sqlpackage /Action:Publish /SourceFile:bin/Debug/projectname.dacpac /TargetConnectionString:{yourconnectionstring}