2010-12-23

SQL Server 2008 R2 版本,使用「指令碼產生精靈」,將資料表的資料,產生成 Insert 陳述式。

在 SQL Server Management Studio(SSMS) 2008 版本的管理工具之「指令碼精靈」,可以將資料表的資料,產生成 Insert 陳述式。

讓您可以很容易的將資料表以及其資料,轉移到新的環境上。
在 SQL Server 2005 版本時,需要另外安裝「SQL Server 資料庫發行精靈(SQL Server Database Publishing Wizard)」,才能具備此項功能。

以下是各個版本的整理說明:
在 SQL Server 2005 版本上,提供了額外安裝「資料庫發行精靈」。
在 SQL Server 2008 版本上,可以直接使用內建的「指令碼精靈」。
在 SQL Server 2008 R2 版本上,是提供了「產生和發佈指令碼」。


但是圖型介面的設定與先前版本都稍有不同,請參考 SQL Server 2008 R2 版本的實作步驟:

步驟01. 執行 SSMS 管理工具,連線到指定的 SQL Server 執行個體。
步驟02. 展開「資料庫」,選擇指定的資料庫,滑鼠右鍵,選擇「工作」\「產生指令碼」。


步驟03. 在「產生和發佈指令碼」視窗,點選「下一步」。請參考下圖所示:


步驟04. 在「選擇物件」頁面,若要編寫整個資料庫的指令碼,請選擇「編寫整個資料庫和所有資料庫物件的指令碼」;若要選取指定的物件,點選「選取特定的資料庫物件」。請參考下圖所示:



步驟05. 在選擇好後,點選「下一步」。
步驟06. 在「設定指令碼的儲存或發行方式」視窗,設定以下的選項。請參考下圖所示:


在「輸出類型」區域,點選「將指令碼儲存至特定位置」。
在「儲存至檔案」區域,點選「進階」。
在「進階編寫指令碼選項」視窗,在「要編寫指令碼的資料類型」區域,點選「結構描述和資料」。請參考下圖所示:



若僅是產生指定的資料表,請設定「編寫 Check 條件約束的指令碼」、「編寫外部索引鍵的指令碼」等選項。請參考下圖所示:



點選「確定」。
在「儲存至檔案」區域,在「要產生的檔案」方塊,點選「單一檔案」。
在「檔案名稱」區域,選擇此檔案要存放資料夾路徑。
在「另存新檔」區域,點選「Unicode 文字」。

步驟07. 點選「下一步」。
步驟08. 在「摘要」視窗,點選「下一步」。請參考下圖所示:

步驟09. 在「儲存或發佈指令碼」視窗,點選「完成」。請參考下圖所示:


步驟10. 檢視產生的指令碼。請參考下圖所示:




參考資料
將資料表的資料,產生成 Insert 陳述式:使用 SQL Server Management Studio 2008 指令碼精靈
http://sharedderrick.blogspot.com/2009/03/insert-sql-server-management-studio.html

使用「資料庫發行精靈」:Visual Studio 2008、SQL Server 2008、SQL Database Publishing Wizard
http://sharedderrick.blogspot.com/2009/02/visual-studio-2008sql-server-2008sql_27.html

2010-12-21

SSAS:將資料庫還原(Restore Database)到指定的資料夾路徑

在 SSAS(Analysis Services) 上備份的多維度資料庫,可以使用以下的方式於執行資料庫還原作業時,存放在指定的資料夾路徑。

步驟01. 執行 SSMS 管理工具,在「物件總管」上,設定連線到指定的 Analysis Server。
步驟02. 展開「資料庫」節點,滑鼠右鍵,選擇「還原資料庫」。

步驟03. 在「還原資料庫」視窗,設定以下的選項:
在「還原來源」區域,在「備份檔案」方塊,請自行輸入資料庫備份檔案的完整路徑與檔案名稱,例如:C:\DBC1.abf。


在「還原目標」區域,在「還原資料庫」方塊,輸入新的或是選擇既有的資料庫,例如:DBC1。
在「儲存位置」方塊,自行輸入要指定的資料夾路徑,這是用來存放資料庫的資料夾,例如:D:\mySSAS\DBCube。

請參考下圖所示:


步驟04. 點選「確定」,完成還原資料庫的作業。


經過測試,若你是在「還原資料庫」視窗,點選「瀏覽」圖示,這項功能是讓你選擇預設的資料夾路徑(可選擇預設的 BackupDir 或是 LogDir 資料夾路徑),並沒有提供讓你瀏覽資料夾的功能。
請參考下圖所示:



參考資料:
Analysis Server 屬性對話方塊 (Analysis Services - 多維度資料)
http://technet.microsoft.com/zh-tw/library/ms189366.aspx

管理備份與還原 (Analysis Services)
http://technet.microsoft.com/zh-tw/library/ms174874.aspx

SSAS(Analysis Services):將資料庫建立在指定的資料夾路徑

在 SSAS(Analysis Services) 上建立多維度資料庫,可以使用以下的方式於建立時,存放在指定的資料夾路徑。

步驟01. 執行 SSMS 管理工具,在「物件總管」上,設定連線到指定的 Analysis Server。
步驟02. 展開「資料庫」節點,滑鼠右鍵,選擇「新增資料庫」。

步驟03. 在「新增資料庫」視窗,在「儲存位置」區域,自行輸入要存放的資料夾路徑,例如:
D:\mySSAS\DBCube

請參考下圖所示:


步驟04. 點選「確定」,完成建立資料庫的作業。



經過測試,若你是在「新增資料庫」視窗,在「儲存位置」區域,點選「...」圖示,這項功能是讓你選擇預設的資料夾路徑(可選擇預設的 BackupDir 或是 LogDir 資料夾路徑),並沒有提供讓你瀏覽資料夾的功能。
請參考下圖所示:



參考資料:
Analysis Server 屬性對話方塊 (Analysis Services - 多維度資料)
http://technet.microsoft.com/zh-tw/library/ms189366.aspx

2010-12-15

新手學SQL Server 2008「資料庫鏡像(Database Mirroring)」(7)

在前一期文章中,介紹了討論使用資料庫鏡像監視器,觀察鏡像狀態、執行容錯移轉,使用強制服務(可能會遺失資料)、繼續資料庫鏡像工作階段、移除資料庫鏡像、實作不具有自動容錯移轉的高安全性模式等主題。

在本期文章裡,將繼續實作具有自動容錯移轉的高安全性模式、使用手動容錯移轉、遺失主體伺服器,執行自動容錯移轉、遺失見證伺服器時,執行手動容錯移轉、遺失主體伺服器與見證伺服器時、使用Transact-SQL陳述式來建置資料庫鏡像、建立資料庫鏡像端點 、設定夥伴伺服器等主題。



更多相關的技術文章,請參考:DB World 資料庫專家電子雜誌
http://www.dbworld.com.tw/




參考資料:
新手學SQL Server 2008「資料庫鏡像(Database Mirroring)」(1)
http://sharedderrick.blogspot.com/2010/06/sql-server-2008database-mirroring1.html

新手學SQL Server 2008「資料庫鏡像(Database Mirroring)」(2)
http://sharedderrick.blogspot.com/2010/06/sql-server-2008database-mirroring2.html

新手學SQL Server 2008「資料庫鏡像(Database Mirroring)」(3)
http://sharedderrick.blogspot.com/2010/06/sql-server-2008database-mirroring3.html

新手學SQL Server 2008「資料庫鏡像(Database Mirroring)」(4)
http://sharedderrick.blogspot.com/2010/10/sql-server-2008database-mirroring4.html

新手學SQL Server 2008「資料庫鏡像(Database Mirroring)」(5)
http://sharedderrick.blogspot.com/2010/08/sql-server-2008database-mirroring5.html

新手學SQL Server 2008「資料庫鏡像(Database Mirroring)」(6)
http://sharedderrick.blogspot.com/2010/10/sql-server-2008database-mirroring6.html

2010-12-10

認識「維護清除工作」所使用的 xp_delete_file;「Maintenance Tasks」

在 SQL Server 2005 版本上提供了「維護計畫(Maintenance Plan)」,其中所使用的「維護清除工作(Maintenance Tasks)」,具備以下的功能:
移除與維護計劃相關的舊檔案 (包括維護計劃和資料庫備份檔案所建立的文字報表)。

請參考下圖所示:





經過測試 xp_delete_file 這個擴充預存程序,目前可以支援刪除的附檔名,例如:bak、trn、log 等。
此外,可能是為了安全起見,此 xp_delete_file 擴充預存程序可能會檢查檔案的檔頭資訊,確認是否為維護計劃所產生的相關舊檔案。
如果你是自行將某個檔案的附檔名,改為 bak,好像也是無法利用此程式來刪除之。

請參考以下的範例程式碼:
--01 範例說明:
EXECUTE master.dbo.xp_delete_file 
 0, -- 0 表示:刪除[備份檔案]。1 表示刪除[維護計畫文字報表]
 N'\\NAS02\dbbackup\sql2008', -- 主要目錄的完整路徑
 N'trn', -- 刪除檔案的副檔名,僅需副檔名即可,例如:bak,若是要全刪除資料夾內的檔案,填入: * 。
 N'12/12/2010 13:29:51', -- 刪除早於下列時限的檔案
 1 -- 1 表示:要包含第一層的子資料夾,若是沒寫,就不會包含第一層的子資料夾。

--02 刪除指定資料夾內的備份檔案
EXECUTE master.dbo.xp_delete_file 1, N'C:\myAdmin\Device', N'bak'


或許會有朋友詢問,為何不使用 xp_cmdshell 擴充預存程序呢?
可能的原因是:在某些環境上,系統設定不可以使用此擴充預存程序。


根據預設,xp_cmdshell 選項會在新安裝上「停用」,而且可以使用以原則為基礎的管理或執行 sp_configure 系統預存程序來啟用。


使用這個 xp_delete_file 這個擴充預存程序,或許可以解決部份問題。


在 SQL Server 2005 版本上,此「維護清除工作」之功能是有 Bug的,請升級到 SQL Server 2005 Service Pack 2 來修正。


參考資料:
xp_delete_file
http://sqlblog.com/blogs/andy_leonard/archive/2009/03/11/xp-delete-file.aspx

清除工作不會刪除資料庫維護計劃報表,在您安裝 SQL Server 2005 Service Pack 2
http://support.microsoft.com/kb/938085

xp_cmdshell 選項
http://msdn.microsoft.com/zh-tw/library/ms190693.aspx