Triệu chứng
Giả sử bạn có một bảng Microsoft SQL Server có một hoặc nhiều chỉ mục được xây dựng trên đó. Khi bạn truy vấn đối với bảng, SQL Server thể thực hiện đệm dữ liệu không nhất quán cho cột CHAR và BINARY. Hành vi không nhất quán khi trả về giá trị trống ở cuối cột dữ liệu CHAR và BINARY phụ thuộc vào các điều kiện sau đây:
- Các thiết đặt của ANSI_PADDING khi cột được tạo trong SQL Server bảng.
- Quyết định thực hiện quét bảng hoặc tìm kiếm chỉ mục trên các cột.
Nguyên nhân
Trong một số trường hợp nhất định, SQL Server thể thực hiện tối ưu hóa cho phép nó bỏ qua nhiều thao tác để phân phối dữ liệu nhanh hơn. Sự cố này xảy ra do SQL Server không nhận ra rằng không thể áp dụng tối ưu hóa cho trường hợp trên.
Xem thêm thông tin
Hành vi này SQL Server không phù hợp với hành vi được tài liệu trong bài viết sau đây: Sử dụng dữ liệu Char và Varchar.
Lưu ý
Nếu ANSI_PADDING bật khi tạo cột char NULL, thì cột đó sẽ hoạt động giống như cột char NOT NULL: các giá trị được đệm phải theo kích cỡ cột. Nếu ANSI_PADDING tắt khi một cột char NULL được tạo, nó sẽ hoạt động như một cột varchar với ANSI_PADDING đặt TẮT: các giá trị trống ở cuối bị cắt cụt.
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:
Bản cập nhật Tích lũy 2 cho SQL Server 2017
Bản cập nhật Tích lũy 9 cho SQL Server 2016
Bản cập nhật tích lũy 6 cho SQL Server 2016 SP1
Bản cập nhật tích lũy 8 cho SQL Server 2014 SP2
Bản cập nhật tích lũy 7 cho SQL Server 2014 SP1
Giới thiệu về các bản cập nhật tích lũy SQL Server:
Mỗi bản cập nhật tích lũy mới dành cho SQL Server sẽ chứa tất cả các bản cập nhật nóng và tất cả các bản sửa lỗi bảo mật được bao gồm 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 dành cho doanh SQL Server:
Bản cập nhật tích lũy mới nhất cho SQL Server 2017
Bản cập nhật tích lũy mới nhất cho SQL Server 2016
Bản cập nhật tích lũy mới nhất cho SQL Server 2014
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.