求教SQLServer2008R2 报表>>备份和还原事件出现错误!!

xfok 2013-05-30 09:11:32
请教各位大侠SQLServer2008R2数据库,报表>>备份和还原事件:备份操作错误出现下面异常:
无法检索报表此部分的数据。出现以下错误:消息567,级别16状态2
请各位大侠给予指点,小弟不胜感激!
...全文
187 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2013-06-03
  • 打赏
  • 举报
回复
dbcc checkdb()检查一下数据库是否有错误..
铁歌 2013-06-03
  • 打赏
  • 举报
回复
看一下服务器跟踪即profilter trace产生的log.trc文件是否存在,它在后台执行如下SQL语句,可以在MSMT中执行下脚本,看能否产生结果

exec sp_executesql @stmt=N'begin try 
use msdb; 
declare @enable int;
select @enable = convert(int, value_in_use) from sys.configurations where name = ''default trace enabled'' 
if @enable = 1  
begin 
        declare @curr_tracefilename varchar(500);
        declare @base_tracefilename varchar(500);
        declare @status int; 
        declare @indx int;   
        declare @temp_trace table ( 
                Error int
        ,       StartTime datetime
        ,       HostName sysname collate database_default null
        ,       ApplicationName sysname collate database_default  null
        ,       LoginName sysname collate database_default null
        ,       Severity int
        ,       DatabaseName sysname collate database_default null
        ,       TextData nvarchar(max) collate database_default 
        ); 
        
        select @status=status, @curr_tracefilename=path from sys.traces where is_default = 1 ;
        set @curr_tracefilename = reverse(@curr_tracefilename) 
        select @indx  = patindex(''%\%'', @curr_tracefilename)  
        set @curr_tracefilename = reverse(@curr_tracefilename) 
        set @base_tracefilename = left( @curr_tracefilename,len(@curr_tracefilename) - @indx) + ''\log.trc''; 
        
        insert into @temp_trace 
        select Error
        ,       StartTime
        ,       HostName
        ,       ApplicationName
        ,       LoginName
        ,       Severity
        ,       DatabaseName
        ,       TextData  
        from ::fn_trace_gettable( @base_tracefilename, default ) 
        where substring(TextData, 20, 15) like ''%Backup%'' and TextData like ''%Error%'' and ServerName = @@servername ;  
        
        select (row_number() over(order by StartTime desc))%2 as l1
        ,       right( right( TextData, len(TextData) - patindex(''%BACKUP%'',TextData) ) , len(right( TextData, len(TextData) - patindex(''%BACKUP%'',TextData) )) - patindex(''%BACKUP%'',right( TextData, len(TextData) - patindex(''%BACKUP%'',TextData) )) - 10 ) as ErrorMessage
        ,       Error
        ,       Severity
        ,       StartTime
        ,       HostName
        ,       ApplicationName
        ,       LoginName
        ,       DatabaseName  
        from @temp_trace   
        where DatabaseName = ''"  & Parameters!DatabaseName.Value &  "''  
        order by StartTime desc 
end else 
begin 
        select top 0 1 as ErrorMessage, 1 as Error, 1 as Severity, 1 as StartTime,1 as HostName, 1 as ApplicationName,1 as LoginName, 1 as DatabaseName, 1 as l1 
end 
end try 
begin catch 
select ERROR_MESSAGE() as ErrorMessage
,       ERROR_NUMBER() as Error
,       ERROR_SEVERITY() as Severity
,       ERROR_STATE() as StartTime
,       1 as HostName, 1 as ApplicationName,1 as LoginName, 1 as DatabaseName
,       -100 as l1 
end catch',@params=N''
KevinLiu 2013-05-30
  • 打赏
  • 举报
回复
这个你可以用Profiler Trace看一下是哪里出问题了,因为报表是从数据库抓取数据的。找到报表运行的语句自己执行以下看看。
xfok 2013-05-30
  • 打赏
  • 举报
回复
是SQL Server自身带的报表功能了。
KevinLiu 2013-05-30
  • 打赏
  • 举报
回复
你是备份SQL SERVER ReportServer数据库出现的这个问题吗?是用SSMS做的?是否可以上传截图?

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧