LỖI: Thông báo lỗi khi bạn cố gắng lưu kế hoạch bảo trì trong SQL Server Management Studio: "Guid chứa các chữ số 32 với 4 ngang (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)"


Lỗi #: 443411 (SQLBUDT)

Triệu chứng


Xem xét tình huống sau:
  • Trong Microsoft SQL Server Management Studio, bạn kết nối với một phiên bản của Microsoft SQL Server 2005 tích hợp dịch vụ (SSIS).
  • Bạn nhập kế hoạch bảo trì một gói dịch vụ tích hợp được lưu trữ trong một vị trí khác. Gói tích hợp dịch vụ đã xuất bản kế hoạch bảo trì.
  • Trong SQL Server Management Studio, bạn thay đổi kế hoạch bảo trì, và sau đó bạn cố gắng lưu kế hoạch bảo trì.
Trong trường hợp này, bạn nhận được thông báo lỗi sau:
GUID chứa các chữ số 32 với 4 ngang (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

Nguyên nhân


Sự cố này xảy ra do sơ kế hoạch bảo trì không được Cập Nhật trong bảng hệ thống sysmaintplan_subplans khi bạn nhập kế hoạch bảo trì gói dịch vụ tích hợp.

Giải pháp


Để khắc phục sự cố này, tự tạo hồ sơ kế hoạch bảo trì bạn nhập. Để thực hiện việc này, hãy làm theo các bước sau:
  1. Khởi động SQL Server Management Studio, và sau đó kết nối với phiên bản SQL Server 2005.
  2. Để tải GUID kế hoạch bảo trì bạn nhập, chạy câu lệnh sau.
    use msdb
    go
    select id from sysdtspackages90 where name='NewPlan'
    go
    Lưu ý Các báo cáo giả sử rằng bạn nhập kế hoạch bảo trì có tên NewPlan trong phiên bản mặc định của SQL Server 2005.

    Bạn lấy GUID trong cột id kết quả sau:
    6A7FA469-F5DB-4FF4-B153-5F11926477B7
  3. Tạo công việc có tên NewPlanJob và sau đó bấm Bảo trì cơ sở dữ liệu trong danh mục .
  4. Công việc mà bạn đã tạo ở bước 3, tạo một bước mới có tên là NewPlanStep rồi sau đó bấm SQL Server gói dịch vụ tích hợp trong danh sách loại .
  5. Đóng hộp thoại Công việc mới .
  6. Để tải GUID bước mà bạn đã tạo ở bước 4, chạy câu lệnh sau.
    use msdb
    go
    select job_id from sysjobsteps where step_name='NewPlanStep'
    go
    Bạn lấy GUID trong cột job_id kết quả sau:
    E85564E2-92A1-4B70-89DF-329F152CCD97
  7. Lấy GUID ghi không được Cập Nhật trong bảng hệ thống sysmaintplan_subplans khi bạn nhập kế hoạch bảo trì. Để thực hiện việc này, hãy làm theo các bước sau:
    1. Business Intelligence Development Studio bắt đầu, và sau đó tạo một dự án tích hợp dịch vụ mới.
    2. Trong giải pháp Explorer, bấm chuột phải vào Các gói SSIS, và bấm Thêm gói sẵn có.
    3. Thêm kế hoạch bảo trì NewPlan dự án hiện tại từ vị trí gói chính xác.
    4. Trong giải pháp Explorer, bấm đúp vào gói đã nhập.
    5. Trong màn hình thiết kế, nhấp vào tác vụ có tên giống như sau:
      Nhiệm vụ báo cáo subplan-{1EFB298F-1313-4A26-8986-A5C9C5A0C2AB}
      Trong ví dụ này, 1EFB298F-1313-4A26-8986-A5C9C5A0C2AB là GUID.
  8. Cho hồ sơ bắt buộc trong bảng hệ thống sysmaintplan_subplans , chạy lệnh sau trong 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. Để khắc phục các lệnh của lệnh mà bạn đã tạo ở bước 3, chạy lệnh sau.
    update sysjobsteps 
    set command='/Server YourServer /SQL "Maintenance Plans\NewPlan" /set "\Package\NewPlan.Disable;false"'
    where step_name='NewPlanStep'
    Lưu ý Tuyên bố này, YourServer là trình giữ chỗ cho tên máy chủ.

Trạng thái


Microsoft đã xác nhận rằng đây là một lỗi trong sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".