搜尋本站文章

2009-02-27

使用「資料庫發行精靈」:Visual Studio 2008、SQL Server 2008、SQL Database Publishing Wizard

目前可分為兩個版本:
1. 額外下載安裝版本:SQL Server 資料庫發行精靈
Microsoft SQL Server Database Publishing Wizard 1.1
可連線的版本:SQL Server 2000、2005

安裝環境部分:
需先安裝「SQL Server 2005 管理物件集合」
SQL Server 2005 Feature Pack - 2006 年 4 月
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=df0ba5aa-b4bd-4705-aa0a-b477ba72a9cb

2. Visual Studio 2008 內建的「資料庫發行精靈」
請升級到 Visual Studio 2008 SP1 版本,即可連線 SQL Server 2008。

請參考下圖1所示:

圖1:使用Visual Studio 2008連線SQL Server 2008的工具版本



功能說明:
可將資料庫內的各項物件產生成單一的 Transact-SQL 指令碼檔案(.sql 檔案),方便讓你重新將此資料庫進行重建。產生的物件包含有:重新建立資料庫結構描述 (資料表、檢視、預存程序、觸發程序 (Trigger)、全文檢索目錄、角色、規則等等) 的命令,而且還可以包含資料表上的資料列。

若你有使用 MySQL Administrator 工具對 MySQL 資料庫執行備份的經驗,就可以知道「資料庫發行精靈」的這項功能於其十分類似。

使用「資料庫發行精靈」,可以使用在以下的幾個情境:
1. 將指定資料表,「一次完整」佈署新到目的地(例如:資料庫)
雖然現行有很多方法,但都不能「一次完整」的將資料表上的「物件」與「資料」,佈署新目的地。

2. 產生向下相容的指令碼
目前「資料庫發行精靈」支援:SQL Server 2000、2005、2008 版本,但不支援 Compact Edition。

注意事項:
大部分的資料庫物件指令碼都會依照原樣來撰寫。
但也有一些例外。來源資料庫中,任何未以 Windows 登入為基礎的非系統使用者帳戶將會撰寫為角色實體的指令碼。
此外,您無法針對任何加密的物件撰寫其指令碼。如果來源資料庫包含加密物件,則精靈不會建立指令碼。



實作練習:使用 Visual Studio 2008 SP1 的「資料庫發行精靈」連線 SQL Server 2008

任務1:使用「伺服器總管」
步驟01. 執行 Visual Studio 2008 SP1。
步驟02. 點選上方的工具選單:「檢視」、「伺服器總管」。請參考圖2所示:

02_伺服器總管

圖2:伺服器總管

任務2:設定連接到 SQL Server 2008
步驟01. 在「伺服器總管」,點選「資料連接」節點,滑鼠右鍵,選擇「加入資料連接」。
步驟02. 在「加入連接」視窗,輸入以下的參數,請參考圖3、4、5、所示:
在「資料來源」區域,點選「變更」。
在「變更資料來源」視窗,在「資料來源」方塊,選擇:「Microsoft SQL Server」,點選「確定」。
在「加入連接」視窗,在「資料來源」方塊,確認選取的是:Microsoft SQL Server (SqlClient)。
在「伺服器名稱」方塊,選取指定的伺服器名稱,例如:localhost,連線到本機伺服器上。
在「連接至資料庫」區域,在「選取或輸入資料庫名稱」方塊,選取指定的資料庫名稱,例如:選取:Northwind。點選「確定」。

03_「變更資料來源」視窗

圖3:設定「變更資料來源」視窗

04_「加入連接」視窗

圖4:設定「加入連接」視窗

05_設定完成後的「伺服器總管」之畫面

圖5:設定完成後的「伺服器總管」之畫面

任務3:執行產生指令碼作業
步驟01. 選取先前新增加的連接,滑鼠右鍵,選取「發行至提供者」。請參考圖6所示:

06_選取「發行至提供者」

圖6:選取「發行至提供者」

步驟02. 在「資料庫發行精靈」視窗,點選「下一步」。請參考圖7所示:

07_在「資料庫發行精靈」視窗

圖7:在「資料庫發行精靈」視窗

步驟03. 在「選取資料庫」頁面,選取指定的資料庫,例如:選取:Northwind。點選「下一步」。
若需要編寫整個資料庫的指令碼,請勾選「為選取資料庫中的所有物件編寫指令碼」。
在本次實作練習中,將採選取指定的資料表,故不勾選此選項。請參考圖8所示:

08_在「選取資料庫」頁面

圖8:在「選取資料庫」頁面

步驟04. 在「選擇物件類型」頁面,勾選「資料表」,點選「下一步」。請參考圖9所示:

09_在「選擇物件類型」頁面

圖9:在「選擇物件類型」頁面

步驟05. 在「選擇資料表」頁面,勾選「Orders」、「Products」,點選「下一步」。請參考圖10所示:

10_在「選擇資料表」頁面

圖10:在「選擇資料表」頁面

步驟06. 在「選取輸出位置」頁面,點選「編寫指令碼至檔案」,在「檔案名稱」方塊,輸入指定的路徑與檔案名稱,例如:C:\Northwind.sql,點選「下一步」。請參考圖11所示:

11_在「選取輸出位置」頁面

圖11:在「選取輸出位置」頁面

步驟07. 在「選取發行選項」頁面,輸入以下的選項,請參考圖12所示:
在「目標資料庫指令碼」方塊,選擇:SQL Server 2008,可選擇產生 SQL Server 2000、2005、2008 的版本。
在「在指令碼中卸除現有物件」方塊,選擇:True,將可產生先卸除目標物件,在建立此物件的指令碼。
在「要發行的資料類型」方塊,選擇:「結構描述和資料」。此處的選項有:「僅限資料」、「僅限結構描述」、「結構描述和資料」。結構描述指的是資料庫中的物件定義,而資料指的是資料庫中資料表的資料列。
在「結構描述限定」方塊,選擇:True,可選擇是否需要產生不以結構描述(schema)名稱限定物件名稱的指令碼。

12_在「選取發行選項」頁面

圖12:在「選取發行選項」頁面

步驟07. 點選「下一步。
步驟08. 在「檢閱摘要」頁面,點選「完成」。請參考圖13所示:

13_在「檢閱摘要」頁面

圖13:在「檢閱摘要」頁面

任務4:檢視產生的指令碼作業
步驟01. 開啟其先所產生的指令碼:C:\Northwind.sql。
步驟02. 所產生的指令碼具備幾個特性,請參考圖14所示:
先刪除目標物件,在建立目標物件。
資料表上的相關物件也會一併產生,例如:主索引鍵、外部索引鍵、CHECK限制條件、索引等等。
資料值部分,將會產生 INSERT 陳述式來進行新增。

14_檢視產生的指令碼

圖14:檢視產生的指令碼



參考網址:
發行 SQL 資料庫
http://msdn.microsoft.com/zh-tw/library/bb907585.aspx

Connecting to Microsoft SQL Server 2008 from Microsoft Visual Studio 2005 and 2008
http://msdn.microsoft.com/en-us/library/cc440724.aspx

Microsoft SQL Server Database Publishing Wizard 1.1
http://www.microsoft.com/downloads/details.aspx?familyid=56E5B1C5-BF17-42E0-A410-371A838E570A&displaylang=en
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=56e5b1c5-bf17-42e0-a410-371a838e570a