[SQL SERVER][SSRS]救回误删的RDL报表
如果不小心误删项目中的RDL报表,在没有相关备份文件或 Source Control..等机制下,
是否有办法挽救呢?答案是可以的(视情况而定),大致上来说三种方法。
1.使用文件救援软件。
如 Recuva...等相关软件,一般来说只要文件删除后,
硬盘没有执行任何异动(新增文件、删除文件、搬移或复制文件),
使用这类软件将高达90%以上几率找回误删的文件。
2.透过ReportServer DB。
你可以使用以下TSQL来查询是否含有误删的报表名称,
前提是这些报表你有部署到ReportServer DB,
下面我简单示范一下。
新增 Report3.rdl
执行画面
结果没错后就部署到ReportServer。
不小心在项目中删除Report3.rdl
执行TSQL查询
select name,[path],cast(cast(content AS varbinary(max)) as xml) as RDLDef
from dbo.[Catalog]
where type = 2
可以看到含有Report3的定义数据。
点选RDLDef字段中的XML数据,复制到剪贴簿中并修改文件名为Report3.rdl
项目中加入刚刚的报表文件即可
3.透过报表管理员下载。
如果相关报表之前有布署成功的话,那你可以透过报表管理员下载相关报表文件。
切换到报表属性
点选编辑。
这时就会跳出下载窗口
最后还是要强调一下备份的重要性,
如果你有使用Reporting Servives的话,相关数据文件(.rdl、.rptproj、.sln...等)、
数据库(reportserver)、组态文件和加密金钥也请记得备份检验喔。
参考
Reporting Services 安装的备份与还原作业
原文:大专栏 [SQL SERVER][SSRS]救回误删的RDL报表