SSDT (SQL Server Data Tools) 概覽
開發代號 Juneau 的 SSDT,為 SQL Server 提供基於 Visual Studio 的整合式開發環境,補足 SSMS 缺乏的專案導向、版本控管、離線開發、應用程式與資料庫共同開發能力。
核心特性
- 連線/離線雙模式:可連線即時編輯,或離線編輯專案檔(.sqlproj)稍後部署。
- Entity Framework 整合:從現有資料庫專案產生 EDMX,實體與資料庫物件(表、欄位、預存程序)雙向對應。
- 平台專屬驗證/偵錯:針對目標平台(SQL Server 2008/2012/Azure)驗證 T-SQL 語法、語意,支援中斷點偵錯預存程序。
- 應用程式與資料庫專案緊密整合:同一 Solution 內同時開發 C#/VB 專案與資料庫專案,實體設計器同步關聯,同步偵錯。
- 可視化資料表設計器:類 SSMS 介面,但整合 IntelliSense、右鍵選單、「前往定義」、「尋找所有參考」。
- SQLCLR 整合:C#/VB 撰寫 CLR 程式碼,直接部署至資料庫專案。
- DACPAC 輸出:建置產出資料層應用程式封裝,可部署至所有 SQL Server 版本含 Azure。
開發工作流程
- 建立「SQL Server 資料庫專案」,匯入現有資料庫或從頭設計。
- 使用資料表設計器/T-SQL 編輯器定義結構,即時錯誤標示(紅波浪線)。
- 建置專案 → 產生
.dacpac,內含完整結構描述與部署腳本。
- 發佈至目標伺服器(本地/Azure/CI 管線),SSDT 自動比對差異產生增量部署腳本。
- 應用程式專案參考資料庫專案,實體模型同步更新,重構時雙方同步重命名。
SSDT vs SSMS
| 面向 | SSDT (Juneau) | SSMS |
| 開發模式 | 專案導向、離線優先、版控友善 | 伺服器導向、連線即時操作 |
| 程式碼智慧 | 完整 IntelliSense、重構、導航 | 基礎 IntelliSense |
| 建置/驗證 | 編譯時靜態分析、平台相容性檢查 | 執行時才發現錯誤 |
| 部署 | DACPAC 增量部署、CI/CD 整合 | 手動腳本/產生腳本精靈 |
| 應用程式整合 | 同方案共同開發、實體模型同步 | 無整合 |
發行時間軸
- Visual Studio 2010 Ultimate/Premium 內建部分功能。
- SSDT 獨立安裝包提供完整功能,支援 VS 2010/2012/2013/2015/2017/2019/2022。
- SQL Server 2012 (Denali) CTP1 未內建,後續 CTP 版本納入。
總結
Juneau (SSDT) 將資料庫開發納入應用程式生命週期管理 (ALM) 主流程,以專案為單位、靜態分析為盾、DACPAC 為矛,解決「資料庫變更難追蹤、部署易出錯、應用與資料庫脫節」三大痛點。現代 SQL Server 開發團隊應以 SSDT 為標準開發環境,SSMS 保留給 DBA 維運、臨時查詢使用。