Câu trả lời:
Một số lý do tôi đã quan sát, nhưng điều này không đầy đủ và là phỏng đoán của tôi
Mức độ tương thích không phải là tất cả hoặc không có gì. Nó cung cấp khả năng tương thích ngược một phần trong khi bạn khắc phục sự cố.
Một ví dụ về bộ ba với gợi ý LOCK
FROM
Table (NOLOCK) -- not allowed with level 90+
và
FROM
Table WITH (NOLOCK) -- WITH is optional for level 80
Tại sao điều này bây giờ là bắt buộc, tôi không biết. Làm gì với CTE?
Đối với PIVOT và ỨNG DỤNG Tôi nghi ngờ rằng một câu lệnh SQL sử dụng chúng chỉ đơn giản là cú pháp SQL Server 2000 bất hợp pháp trong khi ROW_NUMBER chỉ là một hàm không xác định và "ít" quan trọng
Một ví dụ sử dụng CROSS ỨNG DỤNG. Đối với 80, đây là cú pháp SQL Server 2000 bất hợp pháp.
FROM
SomeTable S
CROSS APPLY --or JOIN
dbo.someTVF (S.column)
Có nhiều câu hỏi về SO về lỗi vì mức độ thấp hơn trong các phiên bản mới hơn để bạn xem xét và hy vọng hiểu
Mức độ tương thích MSDN ALTER DATABASE giải thích hành vi của các cấp độ khác nhau. (chỉ cần cuộn xuống và bạn sẽ tìm thấy các bảng so sánh cho các chủ đề sau)
bạn có thể tìm thấy các bảng so sánh cụ thể hơn nếu bạn chỉ thay đổi Phiên bản từ menu trên cùng của MSDN (chúng được liên kết cho 3 phiên bản hàng đầu trong danh sách sau)
120 = Máy chủ SQL 2014
Sự khác biệt giữa các cấp độ tương thích thấp hơn và cấp 120