none
刪除維護計劃出現 error 547 RRS feed

  • 問題

  • Dear Sir:
    SQL 2005 + SP3
    在SQL Agent 刪除維護計劃出現 error 547 訊息如下:
    Job 'MaintenancePlan'的卸除失敗。

    其他資訊:
    執行 Transact-SQL 陳述式或批次時發生例外狀況。
    DELETE 陳述式與REFERENCE 條件約束 "FK_subplan_jon_id" 衝突。衝突發生在資料庫 "msdb", 資料表 "dbo.sysmaintplan_subplans",
    column 'job_id'。陳述已經結束。(Microsoft SQL Server ,錯誤 547)

    2009年7月14日 上午 06:46

解答

  • 如果還不行,那就套用下面的指令,要把裡面的 <維護計畫名稱> 換掉你實際的維護計畫名稱:
    use msdb;
    go
    
    declare @jobName nvarchar(100);
    set @jobName = '<維護計畫名稱>';
    
    delete sysmaintplan_log
      from sysmaintplan_subplans as subplans INNER JOIN
        sysjobs_view as syjobs on subplans.job_id = syjobs.job_id INNER JOIN
        sysmaintplan_log on subplans.subplan_id = sysmaintplan_log.subplan_id
      where (syjobs.name = @jobName);
    
    delete sysmaintplan_subplans
      from sysmaintplan_subplans as subplans INNER JOIN
        sysjobs_view as syjobs on subplans.job_id = syjobs.job_id
      where (syjobs.name = @jobName);
    
    delete from msdb.dbo.sysjobs_view where name = @jobName;

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2009年7月14日 上午 09:07
    版主

所有回覆

  • 先執行下面的指令:
    use msdb;
    go
    delete from dbo.sysmaintplan_log where plan_id = '<你的維護計畫之 id>'


    再執行:
    EXEC sp_delete_maintenance_plan '<你的維護計畫之 id>'

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2009年7月14日 上午 07:53
    版主
  • 感謝大大回覆,但仍無法決解問題,我 select * from dbo.sysmaintplan_log  後並沒有任何資訊.....
    2009年7月14日 上午 08:26
  • 執行下面程式碼,以便檢查維護計畫是否存在:

    use msdb;
    go
    select * from dbo.sysmaintplan_subplans;
    go

    如果有看到查詢結果,把下面指令碼中的 <plan_id> 換成您欲刪除的維護計畫的 plan_id 值換成:

    use msdb;
    go
    delete from dbo.sysmaintplan_subplans
      where plan_id = '<plan_id>'
    GO

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2009年7月14日 上午 08:52
    版主
  • 如果還不行,那就套用下面的指令,要把裡面的 <維護計畫名稱> 換掉你實際的維護計畫名稱:
    use msdb;
    go
    
    declare @jobName nvarchar(100);
    set @jobName = '<維護計畫名稱>';
    
    delete sysmaintplan_log
      from sysmaintplan_subplans as subplans INNER JOIN
        sysjobs_view as syjobs on subplans.job_id = syjobs.job_id INNER JOIN
        sysmaintplan_log on subplans.subplan_id = sysmaintplan_log.subplan_id
      where (syjobs.name = @jobName);
    
    delete sysmaintplan_subplans
      from sysmaintplan_subplans as subplans INNER JOIN
        sysjobs_view as syjobs on subplans.job_id = syjobs.job_id
      where (syjobs.name = @jobName);
    
    delete from msdb.dbo.sysjobs_view where name = @jobName;

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2009年7月14日 上午 09:07
    版主
  • 有3個 Plan_id 相同,刪除其中一個 Plan_id 出現下列訊息:

    訊息 547,層級 16,狀態 0,行 1
    DELETE 陳述式與 REFERENCE 條件約束 "FK_sysmaintplan_log_subplan_id" 衝突。衝突發生在資料庫 "msdb",資料表 "dbo.sysmaintplan_log", column 'subplan_id'。
    陳述式已經結束。

    2009年7月14日 上午 09:35
  • Tried delete subplans first?
    2009年7月14日 下午 04:03
  • 感謝大大協助,已經解決了我執行上述前輩所提供指令

    1.delete from dbo.sysmaintplan_log
      go
    2.delete from dbo.sysmaintplan_subplans
       go
    3. 在 SQL Agent UI刪除排程 即完成
    但我現在還有一個排程無法刪除,發生的原因為我先訂維護計劃,但訂錯後我將該維護計劃刪除,後來發現  SQL Agent UI
    有這個排程,刪除有下列錯誤:

    伺服器 'SQLServer' 的 嘗試擷取物件的資料 失敗。  (Microsoft.SqlServer.Smo)

    其他資訊:

    Job 'DB MaintenancePlan.子計劃_1' 不存在於伺服器上。 (Microsoft.SqlServer.Smo)

     

    2009年7月15日 上午 01:06
  • Dear Sir:
    DB:SQL2005 +SP3
    但我現在還有一個排程無法刪除,發生的原因為我先訂維護計劃,但訂錯後我將該維護計劃刪除,後來發現  SQL Agent UI
    有這個排程,刪除有下列錯誤:

    伺服器 'SQLServer' 的 嘗試擷取物件的資料 失敗。  (Microsoft.SqlServer.Smo)

    其他資訊:

    Job 'DB MaintenancePlan.子計劃_1' 不存在於伺服器上。 (Microsoft.SqlServer.Smo)

    2009年7月15日 上午 01:59
  • Refresgh the dispaly to see if it's still there.
    2009年7月15日 下午 06:10
  • Hi Janpder,

    我碰過一個類似的狀況, 如果維護計劃還在, 就手動補上一個 子計劃_1 , 然後再把 Agent Job 砍掉看看..
    如果不存在, 建一個同名的維護計劃, 建一個同名的子計劃_1 , 然後再把 Agent Job 砍掉看看..

    Regards,

    Wilson
    2009年7月16日 上午 03:26
  • 感謝大大協助,已經解決了我執行上述前輩所提供指令

    ...

    但我現在還有一個排程無法刪除,發生的原因為我先訂維護計劃,但訂錯後我將該維護計劃刪除,後來發現  SQL Agent UI
    有這個排程,刪除有下列錯誤:

    伺服器 'SQLServer' 的 嘗試擷取物件的資料 失敗。  (Microsoft.SqlServer.Smo)

    其他資訊:

    Job 'DB MaintenancePlan.子計劃_1' 不存在於伺服器上。 (Microsoft.SqlServer.Smo)

     

    問題還沒解決嗎?

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2009年7月19日 上午 10:16
    版主
  • 已決解了,謝謝。
    2009年7月28日 上午 06:29