Ron*_*red 5 sql-server constraint ssrs sql-server-2008-r2
我们有许多 SSRS 报告定时订阅(SQL Server 2008R2 SP4)。我们的一位报告开发人员尝试删除报告订阅,但出现以下错误:
报表服务器数据库中出现错误。这可能是由于数据库中的连接失败、超时或磁盘空间不足造成的。(rsReportServerDatabaseError) 获取联机帮助 DELETE 语句与 REFERENCE 约束“FK_ReportSchedule_Subscriptions”冲突。冲突发生在数据库“ReportServer”、表“dbo.ReportSchedule”、“SubscriptionID”列中。该语句已终止。
我通过从ReportServer.dbo.ReportSchedule表中手动删除计划记录解决了这个问题。
步骤如下:
1、找到需要删除的相关订阅。
SELECT sub.SubscriptionID,
rs.ScheduleID,
SUB.[Description]
,SUB.EventType
,SUB.DeliveryExtension
,SUB.LastRunTime
FROM dbo.Subscriptions AS SUB
INNER JOIN dbo.Users AS USR ON SUB.OwnerID = USR.UserID
INNER JOIN dbo.ReportSchedule AS RS ON SUB.Report_OID = RS.ReportID
AND SUB.SubscriptionID = RS.SubscriptionID
WHERE SUB.Description like '%**Mail reciepient here**%'
ORDER BY sub.Description
Run Code Online (Sandbox Code Playgroud)
2. 找到防止记录被删除的相关时间表。
SELECT [ScheduleID]
,[ReportID]
,[SubscriptionID]
,[ReportAction]
FROM [ReportServer].[dbo].[ReportSchedule]
WHERE SubscriptionID = '**GUID HERE**'
Run Code Online (Sandbox Code Playgroud)
3.备份表
SELECT *
INTO [ReportServer].[dbo].[ReportScheduleBackup]
FROM [ReportServer].[dbo].[ReportSchedule]
Run Code Online (Sandbox Code Playgroud)
4. 删除日程
DELETE FROM [ReportServer].[dbo].[ReportSchedule]
WHERE ScheduleID ='**GUID HERE**'
Run Code Online (Sandbox Code Playgroud)
delete 命令删除了计划并从保存 RS 数据库的 SQL 实例中删除了作业。该作业触发了定时订阅。
之后,我可以从报告 Web GUI 中删除报告定时订阅。
我的问题:
小智 2
过去几周我一直遇到同样的问题,并决定手动删除。我想我今天已经破解了。我将订阅表上的外键约束 [FK_ReportSchedule_Subscriptions] 与干净(工作)安装的 ssrs 上的外键约束进行了比较。在我的全新安装中,约束是使用 nocheck 设置的
归档时间: |
|
查看次数: |
702 次 |
最近记录: |