[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 安装的备份与还原作业

原文:大专栏  [SQL SERVER][SSRS]救回误删的RDL报表


猜你喜欢

转载自www.cnblogs.com/petewell/p/11452645.html