KB3174963 - KHẮC PHỤC: Mất dữ liệu khi bạn thay đổi thao tác cột trên bảng lớn được tối ưu hóa bộ nhớ trong SQL Server 2016

Áp dụng cho
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Triệu chứng

Trong SQL Server 2016, trên bảng được tối ưu hóa bộ nhớ, hầu hết các tình huống ALTER TABLE hiện chạy song song và dẫn đến việc tối ưu hóa việc ghi vào nhật ký giao dịch. Tuy nhiên, thao tác thay đổi cột trên một bảng lớn được tối ưu hóa cho bộ nhớ chạy song song có thể dẫn đến việc mất dữ liệu. 

NoteALTER TABLE hoạt động chạy đơn luồng và không bị ảnh hưởng bởi sự cố này.

Giải pháp

Sự cố này đã được khắc phục lần đầu tiên trong bản cập nhật tích lũy tiếp theo của SQL Server:

Đề xuất: Cài đặt bản cập nhật tích lũy mới nhất cho SQL Server

Mỗi bản cập nhật tích lũy mới dành cho SQL Server chứa tất cả các bản sửa lỗi nóng và 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 đó. Chúng tôi khuyên bạn nên tải xuống và cài đặt các bản cập nhật tích lũy mới nhất cho SQL Server:

      

Giải pháp thay thế

Để khắc phục sự cố này, hãy tắt nhật ký được tối ưu hóa cho các hoạt động thay đổi bằng cách bật cờ theo dõi 9909. 

Để bật cờ theo dõi 9909, hãy thêm tham số khởi động -T9909. Hoặc bạn có thể sử dụng câu lệnh dbcc traceon(9909) cho một phiên cụ thể.

Trạng thái

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

Tham khảo

Tìm hiểu về thuật ngữ mà Microsoft dùng để mô tả các bản cập nhật phần mềm.