2013年5月28日 星期二

SQL Server Data Tools

資料庫專案

Visual Studio 從 2005 版本開始提供資料庫專案範本, 這種專案完全使用TSQL的宣告方式來定義資料庫,可横跨資料庫開發的所以階段。 此外,資料庫專案也可以用來進行資料庫的版本管控,建立測試資料,發佈資料庫,方便整個資料庫的管理作業。

SQL Server Data Tool (SSDT)

到了 Visual Studio 2012 或者 SQL Server 2012 又推出了 SQL Server Data Tool (SSDT)。 它是一套整合在 Visual Studio 裡的資料庫管理工具,讓開發人員幾乎無需使用 SSMS 管理工具,而直接在 Visual Studio 內,就可以完成資料庫的設計、建置、資料庫專案(SSDT-DP)、T-SQL 重構等作業。 SSDT 不僅僅是資料庫管理工具,也是用來開發特殊專案類型工具,如: SSAS、SSRS 和 Integration Services Business Intelligence (BI) 方案 (之前稱為 Business Intelligence Development Studio)。

SSDT 已包含在 SQL Server 2012 或 Visual Studio 2012 的安裝檔案裡, 若使用 Visual Studio 2010 ,必須額外下載安裝程式

建立資料庫專案

底下練習由 visual studio 2010 中,建立一個全新的資料庫,並部署到 Server Server。 「資料庫專案」僅 Premium 和 Ultimate 版本的 VS 有提供,Profession 和 Express 版本不支援。 另外要注意一點,在 visual studio 2010 中的資料庫專案,是區分版本的,你可以一開始就選擇「SQL 2005 資料庫專案」或「SQL 2008 資料庫專案」。 也可以事後再由專案的屬性中,改變「專案設定」頁籤中的「專案版本」。

建立「資料庫專案」

1. 加入新的「SQL Server 2008 資料庫專案」

2. 加入資料表

新增一個資料表

編輯資料表內容

編輯完成後,你可以在專案中找到相關的腳本。

3. 資料庫設定

要發行資料庫前,你必須先設定好資料庫連線。這個設定位於「屬性」視窗中的「部署」頁籤,其中幾個重要項目如下:

  • 部署動作(deploy action):指定部署動作執行時,是只有產生部署腳本,還是要同時執行部署動作。 因為有時專案開發者,並沒有對實際資料庫進行操作的權限,這時就可以選擇僅建立部署腳本,再交由 DBA 去執行該指令碼。
  • 目標資料庫設定(Target database settings):設定目標連接(target connection)與目標資料庫。

4. 部署

最後,只要在專案的右鍵選單中選擇「部署」即可。

5. 部署結果

如果順利,你可以在 VS 的輸出視窗中看到以下結果:

並且在 Server Explorer 中看到建立好的資料庫物件。

如果你看到如下圖的錯誤訊息「Deploy01234: 無法判斷目標資料庫結構描述提供者。部署無法繼續」:

這是因為「專案設定」中的「專案版本」,與你實際部署的 SQL 版本不符。 你可以在「屬性」視窗中的「專案設定」頁籤中重新指定專案版本。

建立 SQL Seerver 2012 版本的「資料庫專案」

在 VS2010 中,原本只提供 SQL Server 2005 及 2008 版本的資料庫專案範本,直到後來 SQL Server Data Tools (SSDT),加入了「SQL Server 資料庫專案」, 這個專案範本就可以直接支援不同版本的資料庫,不過你仍然必須在該專案中指定資料庫的版本。

1. 建立「SQL Seerver 資料庫專案」

要建立「SQL Server 資料庫專案」,可在 VS2010 的其他語言項目中找到:

如果須要,你必須在「屬性」視窗中的「專案設定」頁籤中重新指定專案版本。

操作「SQL Server 資料庫專案」時,它會同時開啟「SQL Server 物件總管」。 這個東西就類似 SSMS 中的物件總管,使用樹狀的架構來描述資料庫。 如果你在專案中加入或修改了任何檔案,它都會反應到這個「SQL Server 物件總管」中的相對應物件。

同樣的,如果你在「SQL Server 物件總管」視窗中所進行的任何設定,它也會變更資料庫專案中相對應的腳本檔。

2. 發行

「發行」是「SQL Seerver 資料庫專案」,用來將資料部署到 SQL Server 上的功能。

在執行「發行」資料庫時,系統會要求你先設定好目標資料庫。

發行結果

「SQL Server 2008 資料庫專案」轉換成「SQL Server資料庫專案」

若你要將「SQL Server 2008 資料庫專案」部署到 SQL 2012 ,則必須先將舊型的專案轉換成「SQL Server 資料庫專案」,轉換方法也很簡單,只要在原本專案的右鍵選單中執行底下功能即可。

資料庫結構比較

如果你想比較「資料庫專案」與「實際資料庫」的結構差異,就可以使用「結構描述比較」功能。(這功能也可以比較專案vs專案,或資料庫vs資料庫)。 它會將差異顯示在方格中方便檢閱,讓你決定是否直接更新,或者產生相對應的更新指令碼。

依據現有資料庫建立資料庫專案

如果你要替現有資料庫建立資料庫專案,你可以透過精靈工具來簡化建立的步驟。

使用「SQL Server 2008 精靈」建立「SQL Server 2008 資料庫專案」

你也可以使用「SQL Server 2008 精靈」,將現有的 SQL Server 2008 資料庫轉換成資料庫專案。

使用 SSDT 將資料庫匯到「SQL Server 資料庫專案」

如果你要建立的資料庫來源是 SQL 2012 ,那麼就必須使用 SSDT 所提供的功能。 以下範例說明,如何將現有的 SQL 2012 資料庫轉成 SSTD 的「SQL Server 資料庫專案」,以及重構功能。

1. 開啟「SQL Server 物件總管」

如果安裝過 SSDT 之後,你就可以在 VS2010 中找到 SQL Server 物件總管。

2. 加入 SQL 連線

由伺服器總管加入 SQL 連線

3. 建立新專案

在資料庫上按右鍵選擇【建立新專案】來產生整個資料庫的資料庫專案。

4. 匯入

當你輸入目標專案名稱後,接著按啟動,就會關始將來源資料庫匯入到目標資料庫專案。

匯入完成畫面。

SSDT 會將剛剛選定的物件匯出成相對應的 TSQL

同時 SSDT 也會在 LocalDB 中,建立一個與專案名稱相同的執行個體與資料庫。

5. 編輯資料庫

當您利用 SSDT 的「SQL Server 物件總管」來開啟資料表進行修改,系統會自動修改相應於資料表的 .sql 檔。

如果你修改了某個欄位名稱,也可以利用專案的「建置」功能,查出所有與該欄位相關的物件。

6. 查詢資料庫

若您想要利用 SQL Server Data Tool 查詢 SQL Server 中的資料,可利用新增查詢的功能來開啟查詢視窗。

使用 Ctrl + Shift + E 執行查詢

7. 檢視資料

檢視資料

由資料產生 INSERT 指令碼

使用「重構」功能

如果我們要變更資料欄位名稱,可以直接使用資料庫專案的「重構功能」,它會自動幫我們找出資料庫中使用到這個欄位的所有物件,同時進行變更。

重新命名

預覽變更

使用「資料表設計工具」

要變更資料表的結構,除了使用「重構」功能外,你也可以使用「資料表設計工具」來操作。 不過,使用「資料表設計工具」所做的變更(例如欄位的更名或刪除),無法自動進行重構。 若該欄位有在其他物件中使用,如 VIEW 或 SP 等,必須先執行「結構描述比較」,找出差異的地方之後,才能進行更新。

使用「資料表設計工具」變更資料表的結構

使用「資料表設計工具」進行資料表的結構變更。

加入欄位

更新資料庫

要將以上進行的異動,同步到實體資料庫,必須先進行「結構描述比較」,找出差異的地方之後,才能進行更新。

使用「結構描述比較」

選取目標:設定比對的實體對象,並進行「比較」

確認差異內容,若無誤,再進行「更新」

更新完成

確認資料庫中的結構是否有更新:

欄位已更新

參考到的檢視表也有更新

沒有留言:

張貼留言