延續前一篇的內容, 本篇將就 SSDT 提供的 SQL Server 資料庫專案 進行說明.
資料庫環境說明
延續前一篇最後一版的狀況, 亦即:
(1) 加入了 usp_get_all_emps 這個 stored procedure;
(2) 修改了 DeptName 及 EmpName 的欄位長度
應用程式說明
本範例共含有2個專案, 一個是 Console Application, 一個是 SQL Server 資料庫專案; 同時加入 Visual Studio Online 進行版控.
建立 Console Application 專案
加入 SQL Server 資料庫專案
由下圖看來, 似乎是個空專案; 其實, 必須匯入, 才會有內容啦
加入至 Visual Studio Online 版控
將 Visual Studio 2013 的方案, 加入到前篇建立的 TEAM 專案
檢視版更記錄
開始進行異動
CASE 1: 加入 Stored Procedure
加入 usp_get_emps_by_detpid 這個 stored procedure, 以取得某個部門的員工資料
注意:
這裡的加入預存程序, 係加在 Visual Studio 2013 的專案裡, 並沒有反映到資料庫; 必須要將本專案作為來源, 資料庫作為目標, 進行更新.
在編寫的過程中, intellisense 就出現了
最後的內容
CREATE PROCEDURE [dbo].[usp_get_emps_by_deptid]
@pi_deptid int = 1
AS
SELECT E.*, D.DeptName
FROM Emp E Left Join Dept D ON ( E.DeptId = D.DeptId )
WHERE E.DeptId = @pi_deptid;
RETURN 0;
CASE 2: 修改 Table Layout
將 DeptName 及 EmpName 由 nvarchar(20) 改為 nvarchar(30)
SQL Server資料庫專案 與 開發環境資料庫同步
檢查目前 SQL Server 資料庫專案的正確性
看一下 建置方案 或 重建方案 的結果
進行比較
下圖顯示了有 3 個地方有差異, 可以直接 [更新] 或 [產生指令碼]
這裡直接採用 [更新] 的方式
將單元測試後的版本, 簽入至 Visual Studio Online
單元測試完成後, 將本版次簽入到 Visual Studio Online
總結
採用 SQL Server 資料庫專案的好處, 與前一篇相比較 至少有2點:
(1) 有 intellisense
(2) 可以透過建置或重建, 先檢查是否有語法上的問題.
本系列文章僅就資料庫版控作一個簡單的說明, 還有一些深入的議題可以探討, 例如: (1) Data Tier Application, (2) 如何利用 SQL Server 本身提供的版控機制. 各位可以參考Will 保哥在 Slide Share 及 Channel 9 分享的 Slides 及 影片.
參考文件
- Will保哥 SQL Server 資料庫版本控管 (簡報分享)
- Will保哥 SQL Server 資料庫版本控管 (影片)
沒有留言:
張貼留言