Triệu chứng
Sau khi áp dụng Bản cập nhật Tích lũy 26 (CU26) của SQL Server 2016 (SP3) hoặc SQL Server 2017 ( CU26) và bạn chạy quy trình dọn dẹp theo dõi thay đổi được lưu trữ, sp_flush_commit_table_on_demand hoặc sp_flush_CT_internal_table_on_demandhoặc nếu quá trình tự dọn sạch theo dõi thay đổi chạy, bạn sẽ nhận được thông báo lỗi sau đây:
Msg 8114, Level 16, State 1, Procedure sp_add_ct_history, Line LineNumber
Error converting data type numeric to int.
Ngoài ra, các lỗi sau đây có thể được ghi nhật ký trong SQL Server nhật ký lỗi:
DateTime spidNum Error: 22122, Severity: 16, State: 1.
DateTime spidNum Change Tracking autocleanup failed on side table of "table_name". If the failure persists, use sp_flush_CT_internal_table_on_demand to clean up expired records from its side table.
Sau khi bạn gặp lỗi này, hãy thay đổi tính năng tự động dọn sạch không thể dọn sạch các mục nhập từ bảng bên hoặc bảng syscommittab.
Nguyên nhân
SQL Server 2016 SP3 và SQL Server 2017 CU26 đã giới thiệu bảng mới, dbo. MSchange_tracking_history, và một thủ tục lưu trữ mới, sys.sp_add_ct_history, để ghi lại lịch sử dọn dẹp theo dõi thay đổi. Bảng này có một cột, cleanup_version,hiện được khai báo là kiểu dữ liệu INT. Thủ sys.sp_add_ct_history lưu trữ có một tham @cleanup_version, cũng được khai báo là INT. Trên một hệ thống bận rộn sử dụng chức năng theo dõi thay đổi, phiên bản dọn dẹp có thể đi qua một phạm vi INT trong một khoảng thời gian nhất định. Sau đó, khi dọn sạch theo dõi thay đổi chạy, ứng dụng sẽ cố gắng chèn một giá trị BIGINT vào cột INT của bảng này. Điều này tạo ra lỗi được mô tả trong phần "Triệu chứng".
Giải pháp
Sự cố này đã được khắc phục trong các bản cập nhật tích lũy sau đây SQL Server:
Cập nhật Tích lũy 27 cho SQL Server 2017
Mỗi bản cập nhật tích lũy mới cho SQL Server chứa tất cả hotfix và tất cả các bản sửa lỗi bảo mật được tích hợp trong bản cập nhật tích lũy trước đó. Xem các bản cập nhật tích lũy mới nhất cho mọi SQL Server:
Thông tin hotfix theo yêu cầu:
Sự cố này được khắc phục trong hotfix theo yêu cầu sau đây SQL Server:
Cách giải quyết
Nếu bạn gặp phải sự cố này, hãy hoàn nguyên về bản dựng trước đó bằng cách gỡ cài đặt SQL Server 2016 SP3 hoặc SQL Server 2017 CU26. Microsoft đang tích cực điều tra sự cố này, đồng thời sẽ cập nhật bài viết này để biết thêm thông tin cũng như hướng dẫn bổ sung khi có thông tin đó.
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
Tham khảo
Tìm hiểu về thuật ngữ mà Microsoft sử dụng để mô tả các bản cập nhật phần mềm.