Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

BUG: Error message when you try to save a maintenance plan in SQL Server Management Studio: "Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)"


Bug #: 443411 (SQLBUDT)

↑ Back to the top


Symptoms

Consider the following scenario:
  • In Microsoft SQL Server Management Studio, you connect to an instance of Microsoft SQL Server 2005 Integration Services (SSIS).
  • You import a maintenance plan from an Integration Services package that is stored in a different location. The Integration Services package was previously exported from a maintenance plan.
  • In SQL Server Management Studio, you modify the maintenance plan, and then you try to save the maintenance plan.
In this scenario, you receive the following error message:
Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

↑ Back to the top


Cause

This problem occurs because a record of the maintenance plan is not updated in the sysmaintplan_subplans system table when you import the maintenance plan from the Integration Services package.

↑ Back to the top


Workaround

To work around this problem, manually create the record of the maintenance plan that you import. To do this, follow these steps:
  1. Start SQL Server Management Studio, and then connect to the instance of SQL Server 2005.
  2. To obtain the GUID of the maintenance plan that you import, run the following statements.
    use msdb
    go
    select id from sysdtspackages90 where name='NewPlan'
    go
    Note These statements assume that you import a maintenance plan that is named NewPlan in the default instance of SQL Server 2005.

    You obtain the following GUID in the id column of the result:
    6A7FA469-F5DB-4FF4-B153-5F11926477B7
  3. Create a job that is named NewPlanJob, and then click Database Maintenance in the Category list.
  4. For the job that you created in step 3, create a new step that is named NewPlanStep, and then click SQL Server Integration Services Package in the Type list.
  5. Close the New Job dialog box.
  6. To obtain the GUID of the step that you created in step 4, run the following statements.
    use msdb
    go
    select job_id from sysjobsteps where step_name='NewPlanStep'
    go
    You obtain the following GUID in the job_id column of the result:
    E85564E2-92A1-4B70-89DF-329F152CCD97
  7. Obtain the GUID of the record that is not updated in the sysmaintplan_subplans system table when you import the maintenance plan. To do this, follow these steps:
    1. Start Business Intelligence Development Studio, and then create a new Integration Services project.
    2. In Solution Explorer, right-click SSIS Packages, and then click Add Existing Package.
    3. Add the NewPlan maintenance plan to the current project from the correct package location.
    4. In Solution Explorer, double-click the imported package.
    5. In Design view, click the task that has a name that resembles the following:
      Reporting Task for subplan-{1EFB298F-1313-4A26-8986-A5C9C5A0C2AB}
      In this example, 1EFB298F-1313-4A26-8986-A5C9C5A0C2AB is the GUID.
  8. To insert the required record in the sysmaintplan_subplans system table, run the following statement in SQL Server Management Studio.
    insert into sysmaintplan_subplans (
    subplan_id,
    subplan_name,
    subplan_description,
    plan_id,
    job_id
    )values (
    '1EFB298F-1313-4A26-8986-A5C9C5A0C2AB',
    'NewPlan','',
    '6A7FA469-F5DB-4FF4-B153-5F11926477B7',
    'E85564E2-92A1-4B70-89DF-329F152CCD97'
    )
    GO
  9. To fix the command of the job that you created in step 3, run the following statement.
    update sysjobsteps 
    set command='/Server YourServer /SQL "Maintenance Plans\NewPlan" /set "\Package\NewPlan.Disable;false"'
    where step_name='NewPlanStep'
    Note In this statement, YourServer is a placeholder for the server name.

↑ Back to the top


Status

Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section.

↑ Back to the top


Keywords: kbsqlmobile2005presp2fix, kbexpertiseadvanced, kbtshoot, kbsql2005ssis, kbbug, kb, misc_migrate_32718

↑ Back to the top

Article Info
Article ID : 922651
Revision : 4
Created on : 4/13/2018
Published on : 4/13/2018
Exists online : False
Views : 101