Triệu chứng
Giả định rằng bạn có một truy vấn thực hiện một số hoạt động chuỗi ví dụ: concatenation, trên các cột CHAR hoặc VARCHAR trong Microsoft SQL Server 2014, 2016 và 2017. Hãy xem xét tình huống sau:
-
Bạn concatenate các cột với các phép chiếu khác nhau được gán cho chúng.
-
Những đối chiếu này không tương thích với nhau. Ví dụ, bạn có thể cố định một cột được phân cách như Latin1_General_CI_AI với Latin1_General_BIN.
-
Kết quả cuối cùng của hàm ghép chuỗi được gán cho một đối chiếu cụ thể (bao gồm "database_default") làm một vấn đề về độ phân giải xung đột đối chiếu.
Trong trường hợp này, SQL Server có thể trả về bán lẻ khẳng định rằng các trạng thái "so sánh không hợp lệ do không có COLLATION" và bạn có thể nhận được một số thông báo lỗi giống như sau:
Vị trí: typinfo. cpp:Linenumber Biểu thức: false Dịch vụ SPID: dịch vụ SPID ID quá trình: Processid Mô tả: so sánh không hợp lệ do không có COLLATION.
Msg 3624, mức 20, bang 1, hàm Linenumber Kiểm tra xác nhận hệ thống đã không thành công. Kiểm tra Nhật ký lỗi SQL Server để biết chi tiết. Thông thường, một lỗi khẳng định là do lỗi phần mềm hoặc dữ liệu bị hỏng. Để kiểm tra tham nhũng của cơ sở dữ liệu, hãy cân nhắc chạy DBCC CHECKDB. Nếu bạn đồng ý gửi các bãi cho Microsoft trong khi thiết lập, một tệp mini sẽ được gửi đến Microsoft. Có thể có bản Cập Nhật từ Microsoft trong gói dịch vụ mới nhất hoặc trong một hotfix từ bộ phận hỗ trợ kỹ thuật.
Msg 596, mức 21, bang 1, hàm Linenumber Không thể tiếp tục thực hiện vì phiên là trong trạng thái Kill.
Msg 0, mức 20, bang 0, hàm Linenumber
Một lỗi nghiêm trọng xảy ra trên lệnh hiện tại. Kết quả, nếu có, hãy loại bỏ.
Nguyên nhân
Trong giai đoạn tối ưu hóa truy vấn, SQL Server sẽ cố gắng tính toán cho các kết quả trung gian của các giai đoạn khác nhau của truy vấn, ví dụ: ghép nối. Vì độ phân giải xung đột đối chiếu diễn ra ở cuối, trình tối ưu truy vấn có thể không biết và cố gắng thực hiện tính toán cho phép tính tổng hợp trên một đầu vào có liên tục đối chiếu.
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.