SQL 專案的工具可在數個開發環境和命令列介面使用。 SQL 專案的主要工具是 SqlPackage 命令列公用程式、Visual Studio 中的 SQL Server Data Tools (SSDT),以及適用於 Azure Data Studio 和 Visual Studio Code 的 SQL 資料庫專案延伸項目。
本文中包含的工具:
圖形工具
這些工具提供 SQL 專案的圖形化介面、T-SQL 編輯器,以及組建和發佈流程。
SQL Server Data Tools (SSDT) 是 Visual Studio 元件,可提供 SQL 專案的圖形化介面。 SSDT 提供資料表、T-SQL 編輯器,以及建置和發佈程式的視覺化設計工具。
SQL 資料庫專案延伸項目是 Azure Data Studio (ADS) 和 VS Code 的延伸項目。 此延伸模組提供 SQL 專案的圖形化介面、T-SQL 編輯器,以及建置和發佈程序。
功能組比較
特色 | SDK 風格 SSDT | SSDT | ADS | VS Code |
---|---|---|---|---|
建立新的空專案 | X | X | X | X |
從現有的資料庫建立新專案 | X | X | X | |
開啟現有的 Microsoft.Build.Sql 專案 | X | X | X | |
解決方案管理和作業 | X | X | ||
專案執行組建 | X | X | X | X |
發佈專案到現有的伺服器 | X | X | X | X |
將專案發佈至本機開發環境 | X1 | X1 | X2 | X2 |
發佈選項/屬性設定 | X | X | X | |
目標平台可以更新 | X | X | X | X |
SQLCMD 變數 | X | X | X | X |
專案參考 | X | X | ||
Dacpac 參考 | X | X | X | |
套件參考 | X | |||
公開個人資料建立 | X | X | X | |
SQL 檔案放在專案資料夾即可新增 | X | X | X | |
SQL 檔案可以從組建排除 | X | X | ||
部署前/部署後指令 | X | X | X | X |
新物件範本 | X3 | X | X3 | X3 |
專案檔可以整理成資料夾 | X | X | X | X |
結構描述比較專案與資料庫 | X | X | ||
結構描述比較資料庫與專案 | X | X | ||
圖形化資料表設計工具 | X | X | ||
Code Analysis – 啟用/停用規則 | X | |||
專案屬性 – 組建輸出設定 | X | X | ||
專案屬性 – 預設結構描述 | X | |||
專案屬性 – 資料庫設定 | X | |||
專案獨立執行 Code Analysis | X | |||
物件重新命名和重構 | X | |||
在專案模型資料庫檔案中提供的 Intellisense | X | |||
SQL Server 物件總管連線性/檢視物件 | X | X | X | X |
SQL Server 物件總管操作功能表項目 | X | X | X | |
SQL Server 查詢編輯器連線性 | X | X | X |
- 本機開發執行個體是 SQL Server LocalDB 執行個體。
- 本機開發執行個體是 SQL Server 容器。
- 可用的範本子集有限
命令列工具
SqlPackage 是 DacFx 程式庫的主要命令列公用程式,可讓您自動化資料庫開發工作單位,例如將 .dacpac
部署至資料庫,或將資料庫的物件擷取至 SQL 專案或 .dacpac
。
您可以使用 DacFx .NET 程式庫建置自訂主控台應用程式,將資料庫開發工作自動化。 Microsoft.SqlServer.Dac 命名空間包含用來建立、部署及擷取資料庫物件的類別,而且是其餘 DacFx 程式庫的基礎。
CI/CD 管線可以使用命令列執行,或是使用 .dacpac
特定工作與 SQL 專案部署建置。
GitHub sql-action 和 Azure DevOps 中的SqlAzureDacpacDeployment,是使用管理層底下之 SqlPackage 輔助部署資料庫變更的工作範例。
轉換工具
將 現有的 SQL 專案轉換成 SDK 樣式專案 的程式,是手動編輯 .sqlproj
檔案以包含新的 SDK 樣式專案格式來完成。 開始過程之前,建議先備份專案檔案,並封存 .dacpac
專案版本。 藉由比較從專案建置的「之前」和「之後」 .dacpac
,您可以確定轉換程式已正確完成。
專案/方案管理
多個 SQL 專案(和其他專案)可以在方案檔中以邏輯方式群組在一起。 方案檔是一或多個專案的容器,可用來將專案當作群組來管理,包括建置動作。 大型解決方案可以細分為較小的解決方案,以提升效能和管理性,或者根據當前任務動態生成。 slngen 方案檔產生器適用於 Microsoft.Build.Sql 專案,而且可用來以程式設計方式和隨選方式建立一組專案的解決方案檔。
協力廠商工具
有第三方工具提供與 SQL 專案和資料庫部署相關的功能。 有些工具是開放原始碼,例如 dbatools。
開發人員分享他們使用 SQL 專案的擴充點的專案,其中包括程式碼分析規則和自訂部署計劃。 其中一些專案包括:
- https://github.com/tcartwright/SqlServer.Rules
- https://github.com/davebally/TSQL-Smells
- https://github.com/ErikEJ/SqlServer.Rules
- https://github.com/GoEddie/DeploymentContributorFilterer