[SQL SERVER][SSRS]救回誤刪的RDL報表

[SQL SERVER][SSRS]救回誤刪的RDL報表

如果不小心誤刪專案中的RDL報表,在沒有相關備份檔案或 Source Control..等機制下,

是否有辦法挽救呢?答案是可以的(視情況而定),大致上來說三種方法。

 

1.使用檔案救援軟體。

如 Recuva...等相關軟體,一般來說只要檔案刪除後,

硬碟沒有執行任何異動(新增檔案、刪除檔案、搬移或複製檔案),

使用這類軟體將高達90%以上機率找回誤刪的檔案。

 

2.透過ReportServer DB。

你可以使用以下TSQL來查詢是否含有誤刪的報表名稱,

前提是這些報表你有部署到ReportServer DB,

下面我簡單示範一下。

 

新增 Report3.rdl

image

 

執行畫面

image

結果沒錯後就部署到ReportServer。

 

不小心在專案中刪除Report3.rdl

image

 

執行TSQL查詢


select name,[path],cast(cast(content AS varbinary(max)) as xml) as RDLDef
from dbo.[Catalog]
where type = 2

 

image

可以看到含有Report3的定義資料。

 

點選RDLDef欄位中的XML資料,複製到剪貼簿中並修改檔名為Report3.rdl

image

 

專案中加入剛剛的報表檔案即可

image

 

 

3.透過報表管理員下載。

如果相關報表之前有佈署成功的話,那你可以透過報表管理員下載相關報表檔案。

 

切換到報表屬性

image

點選編輯。

 

這時就會跳出下載視窗

image

 

最後還是要強調一下備份的重要性,

如果你有使用Reporting Servives的話,相關資料檔案(.rdl、.rptproj、.sln...等)、

資料庫(reportserver)、組態檔案和加密金鑰也請記得備份檢驗喔。

 

 

參考

Reporting Services 安裝的備份與還原作業