教學課程:從現有的資料庫開始
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
SQL 專案包含資料庫中所有物件的宣告式 (CREATE 陳述式) 檔案,例如資料表、檢視和預存程序。 這些檔案可以用來建立新的資料庫、更新現有的資料庫,甚至只是追蹤原始檔控制中的資料庫。 通常,當我們有現有的資料庫時,會從 SQL 專案開始,想要在 SQL 專案中建立物件,以最小的投入量來比對資料庫。
某些 SQL 專案工具包含從現有資料庫建立新的 SQL 專案的單一步驟。 其他工具需要幾個步驟來建立新的 SQL 專案,然後從現有資料庫匯入物件。 除了 Visual Studio (SQL Server Data Tools) 指令之外,本指南著重於 SDK 樣式的 SQL 專案。
透過本教學課程中的選項 1,您可以:
步驟 1:從現有的資料庫建立新的 SQL 專案 步驟 2:建置 SQL 專案
透過本教學課程中的選項 2,您可以:
- 步驟 1:建立新的空白 SQL 專案
- 步驟 2:從現有的資料庫匯入物件
- 步驟 3:建置 SQL 專案
必要條件
- .NET 8 SDK
- Visual Studio 2022 Community、Professional 或 Enterprise
- Visual Studio 2022 中已安裝 SDK 樣式 SQL Server Data Tools (預覽版)
- SqlPackage CLI
# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage
# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage
# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates
選項 1:從現有資料庫建立新的 SQL 專案
步驟 1:從現有資料庫建立新的 SQL 專案
從 Visual Studio 中的 [SQL Server 物件總管],以滑鼠右鍵按一下您要從中建立專案的資料庫,然後選取 [建立新專案...]。
在 [建立新專案] 對話方塊中,提供不需要符合資料庫名稱的專案名稱。 視需要驗證並修改專案位置。 預設匯入設定會依結構描述將物件匯入資料夾,然後再依物件類型匯入。 您可以修改匯入設定來變更資料夾結構,或將權限包含在要匯入的物件中。 啟動匯入。
匯入繼續進行時,進度會顯示為 [匯入資料庫] 對話方塊中的訊息。 匯入完成時,匯入的物件會在 [方案總管]中顯示,而記錄會儲存在 Import Schema Logs
下專案目錄的檔案中。 選取 [完成]。
命令列無法使用選項 1。 請改用 選項 2。
在 VS Code 或 Azure Data Studio 中的資料庫物件總管檢視中,選取您要從中建立專案的資料庫。 以滑鼠右鍵按一下資料庫,然後選取 [從資料庫建立專案]。
在 Azure Data Studio 中,[從資料庫建立專案] 對話方塊需要選取專案名稱和位置。 預設匯入設定會依結構描述將物件匯入資料夾,然後再依物件類型匯入。 您可以選取不同的資料夾結構,或在選取 [建立] 之前,在匯入的物件中包含權限。
在 VS Code 中,命令提示字元會要求提供專案名稱和位置。 預設匯入設定會依結構描述將物件匯入資料夾,然後再依物件類型匯入。 您可以選取不同的資料夾結構,或在匯入開始之前包含要匯入的物件中的權限。
開啟 [資料庫專案] 檢視,以查看新的專案和匯入的物件定義。
命令列無法使用選項 1。 請改用 選項 2。
步驟 2:建置 SQL 專案
建置程序會根據專案檔中指定的目標平台,驗證物件與語法之間的關聯性。 建置程序的成品輸出是 .dacpac
檔案,可用來將專案部署到目標資料庫,並包含資料庫結構描述的編譯模型。
在 [方案總管]中,以滑鼠右鍵按一下專案節點,然後選取 [建置]。
輸出視窗會自動開啟以顯示建置程序。 若有有錯誤和警告,會顯示在 [輸出視窗] 中。 成功建置時,會建立組建成品 (.dacpac
檔案),其位置會包含在組建輸出中 (預設值為 bin\Debug\projectname.dacpac
)。
命令列無法使用選項 1。 請改用 選項 2。
在 VS Code 或 Azure Data Studio 的 [資料庫專案] 檢視中,以滑鼠右鍵按一下專案節點,然後選取 [建置]。
輸出視窗會自動開啟以顯示建置程序。 若有有錯誤和警告,會顯示在 [輸出視窗] 中。 成功建置時,會建立組建成品 (.dacpac
檔案),其位置會包含在組建輸出中 (預設值為 bin/Debug/projectname.dacpac
)。
命令列無法使用選項 1。 請改用 選項 2。
選項 2:建立新的空白 SQL 專案,並從現有資料庫匯入物件
或者,可以分開完成專案建立和物件匯入步驟。
步驟 1:建立新的空白 SQL 專案
我們會先建立新的 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 Server 物件總管中的資料庫,則會出現在 [歷程記錄] 清單中。
預設匯入設定會依結構描述將物件匯入資料夾,然後再依物件類型匯入。 您可以修改匯入設定來變更資料夾結構,或將權限包含在要匯入的物件中。 啟動匯入。
匯入繼續進行時,進度會顯示為 [匯入資料庫] 對話方塊中的訊息。 匯入完成時,匯入的物件會在 [方案總管]中顯示,而記錄會儲存在 Import Schema Logs
下專案目錄的檔案中。 選取 [完成] 以返回到專案。
我們會使用 SqlPackage CLI,將物件從現有的資料庫匯入至步驟 1 我們於 Visual Studio 中建立的新 SQL 資料庫專案。 下列 SqlPackage 命令會將資料庫的結構描述匯入至按巢狀結構描述和物件類型資料夾所組織的 MyDatabaseProject
資料夾。
sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType
當這些資料夾放在 SDK 樣式的 SQL 資料庫專案資料夾中時,會自動包含在專案中,而不需要匯入或修改 SQL 專案檔。
注意
VS Code 中的 SQL 資料庫專案延伸模組不支援將物件從資料庫匯入專案。 使用 Azure Data Studio 中的 SQL 資料庫專案延伸模組,從資料庫匯入物件,或遵循選項 1,從 VS Code 中的現有資料庫建立新專案。
在 Azure Data Studio 的 SQL 資料庫專案延伸模組中,開啟 [資料庫專案] 檢視。 以滑鼠右鍵按一下專案節點,然後選取 [從資料庫更新專案]。
在 [更新資料庫] 對話方塊中,選取您要從中匯入物件的資料庫連接。 如果您已連線到 [連線] 檢視中的資料庫,則它會出現在 [歷程記錄] 清單中。
選取 [檢視結構描述比較中的變更],以檢閱並選擇要匯入的物件子集,或 [套用所有變更] 以匯入所有物件。
SqlPackage CLI 可用於將現有資料庫的結構描述擷取到 .dacpac
檔案或個別 .sql
檔案。 下列 SqlPackage 命令會將資料庫的結構描述擷取至按巢狀結構描述和物件類型資料夾所組織的 .sql
檔案。
sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType
當這些資料夾放在 SDK 樣式的 SQL 資料庫專案資料夾中時,會自動包含在專案中,而不需要匯入或修改 SQL 專案檔。
步驟 3:建置 SQL 專案
建置程序會根據專案檔中指定的目標平台,驗證物件與語法之間的關聯性。 建置程序的成品輸出是 .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
)。