使用 SSDT 來管理資料庫物件

本文將介紹如何使用 SSDT 來管理資料庫物件。

情境描述

有朋友在 SQL Server Taiwan 社團討論到如何管理上百支預存程序,管理資料庫物件的做法很多種,其中利用 SQL Server Data Tools(以下簡稱 SSDT)就是一個很好的方式,本文將介紹透過幾個簡單的步驟就可以輕鬆管理資料庫物件,請見以下的說明。

實作步驟

SSDT 目前支援 Visual Studio 2010 和 2012,如果您使用的是 SQL Server 2012 請安裝 SSDT for Visual Studio 2010,若您使用的是 Visual Studio 2012 則安裝 SSDT for Visual Studio 2012。安裝完畢之後開啟 SSDT 您可以在 Visual Studio 2010 或 2012 從功能表【檢視 > SQL Server 物件總管】來開啟 SQL Server 物件總管(如下圖左邊的是 Visual Studio 2010,右邊的是 Visual Studio 2012)。

imageimage

於 SQL Server 物件總管中點選【加入 SQL Server】來連接到您要管理的 SQL Server。

imageimage

接下來以 Northwind 範例資料庫為例,在 Northwind 上按右鍵選擇【建立新專案】。

imageimage

在【建立新專案 - 匯入資料庫】視窗中輸入目標專案的名稱,然後按【啟動

SNAGHTML6048a73SNAGHTML606bedb

接著就會幫您把 SQL Server 中資料庫物件轉成一個一個的指令碼檔案(*.sql)。

SNAGHTML6090636SNAGHTML6093ce0

匯入完畢之後您就可以在方案總管中看到如下圖的結果,所有的資料庫物件例如 Stored Procedures、Tables 或是 Views 都已經被產生出相對應的指令碼檔案(*.sql)。

imageimage

下一步就是把資料庫專案加入版本控管軟體,例如 Team Foudation Server 或 Team Foudation Services。在 SSDT for Visual Studio 2010 預設是選不到 Team Foudation Services(如下圖),您可以參考筆者的這篇文章來解決這個問題,若您使用的是 Visual Studio 2012 則沒這個問題。

SNAGHTML615d94d

SSDT 預設會使用 SQL Server 2012 Express LocalDB 來做為暫存的目標資料庫,您可以在資料庫專案屬性【偵錯】頁籤,您可以依照您的需求點選【編輯】來修改目標連接字串。

imageimage

您在資料庫專案中的所有變更,都會反應到目標連接字串所指定的 LocalDB 執行個體,因此您可以在資料庫專案中盡情地進行資料庫程式的開發,而不用特地建立一套測試環境所需的 SQL Server,此外,透過 LocalDB 您在 SSDT 中輸入 T-SQL 時還可以使用和 SSMS 中相同的 IntelliSense ,是不是相當的方便。

imageimage

最後,如果資料庫物件或查詢指令碼都開發並測試完畢之後,還可以利用 Visual Studio 提供的部署功能,來將資料庫專案所做的變更部署到正式環境。只要輕鬆的在方案總管中的資料庫專案上按滑鼠右鍵,選擇【發行】。

imageimage

於【發行資料庫】視窗中設定目標資料庫連線,接著按發行即可將資料庫專案部署到您所指定的伺服器,您也可以利用另存設定檔來儲存部署資料庫時的相關連接字串資訊,將來要部署時只需載入設定檔即可。

SNAGHTML70fa0d5SNAGHTML7101a58

在 Visual Studio 的資料工具作業視窗中您可以看到部屬的過程,您可以點選視窗右側的超連結來檢視部署時所產生的指令碼或是檢視詳細結果。

SNAGHTML713d76fSNAGHTML71363d6

參考資料

- SQL PASS Taiwan 社團

- Get Started with Microsoft SQL Server Data Tools

- 使用 SQL Server Data Tools 連接至 Team Foundation Services 的三大步驟