Triệu chứng
Giả định rằng bạn có một câu lệnh Cập Nhật tham chiếu đến một hàm Partition không tồn tại bằng cách sử dụng từ khóa $Partition trong Microsoft SQL Server 2014, 2016, hoặc 2017. Ví dụ,
Cập Nhật tablename Set columnname= ' xyz ' trong đó $Partition. NonExistingPartitionFunction (columnname) = 1
Trong trường hợp này, SQL Server không thực hiện bản Cập Nhật hoặc trả về thông báo lỗi để cho biết rằng đối tượng NonExistingPartitionFunction sẽ không tồn tại. Tuy nhiên, từ góc nhìn người dùng, có vẻ như là câu lệnh Cập Nhật đã được thực hiện thành công, nhưng thực ra nó không thành công.
Nguyên nhân
Khi bạn thực thi một lô, SQL Server có thể thực hiện độ phân giải tên chậm (DNR). Trong quy trình này, SQL Server không ngay lập tức tạo ra lỗi khi cuộc gặp một đối tượng không tồn tại, và dự kiến rằng đối tượng sẽ được tạo ra bởi mô-đun hoặc hàng loạt trước khi thực hiện câu lệnh tham chiếu đến đối tượng đó. Đối với hàm Partition, SQL Server sẽ không xử lý DNR đúng.
Thông tin Bổ sung
Để biết thêm thông tin về DNR, hãy xem độ phân giải tên chậm.
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 cho SQL Server:
Cập Nhật tích lũy 8 cho SQL Server 2016 SP1
Mỗi bản Cập Nhật tích lũy mới cho SQL Server chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản Cập Nhật tích lũy trước đó. Kiểm tra các bản Cập Nhật tích lũy mới nhất cho SQL Server:
Bản Cập Nhật tích lũy mới nhất cho SQL Server 2016
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.