Trong SQL Server, bạn có thể sử dụng ALTER DATABASE
để thay đổi mức độ tương thích của cơ sở dữ liệu.
Điều này có thể hữu ích nếu bạn có cơ sở dữ liệu đã được tạo trong phiên bản SQL Server cũ hơn, nhưng bây giờ bạn cần sử dụng các tính năng chỉ khả dụng với mức tương thích mới hơn.
Ví dụ:OPENJSON()
chức năng chỉ khả dụng ở mức độ tương thích 130 hoặc cao hơn. Mặc dù cài đặt SQL Server của bạn có thể hỗ trợ mức tương thích này, bạn vẫn có thể có cơ sở dữ liệu sử dụng mức tương thích thấp hơn. Trong trường hợp này, nếu bạn muốn sử dụng OPENJSON()
so với các cơ sở dữ liệu đó, bạn cần tăng mức độ tương thích lên 130 hoặc cao hơn.
Ví dụ
Dưới đây là một ví dụ về mã thay đổi khả năng tương thích của cơ sở dữ liệu.
ALTER DATABASE Pets
SET COMPATIBILITY_LEVEL = 150;
Kết quả:
Commands completed successfully.
Cơ sở dữ liệu có tên Pets
hiện có mức độ tương thích là 150.
Kiểm tra mức độ tương thích với cơ sở dữ liệu của bạn
Bạn có thể sử dụng sys.databases
chế độ xem danh mục hệ thống để kiểm tra tính tương thích của một cơ sở dữ liệu nhất định hoặc tất cả các cơ sở dữ liệu.
Dưới đây là một ví dụ về việc kiểm tra Pets
cơ sở dữ liệu.
SELECT compatibility_level
FROM sys.databases
WHERE name = 'Pets';
Kết quả:
+-----------------------+ | compatibility_level | |-----------------------| | 150 | +-----------------------+
Mức độ tương thích theo sản phẩm
Dưới đây là bảng hiển thị các mức độ tương thích được hỗ trợ bởi từng phiên bản SQL Server và Azure SQL Database.
Sản phẩm | Phiên bản Công cụ Cơ sở dữ liệu | Chỉ định mức tương thích mặc định | Giá trị mức tương thích được hỗ trợ |
---|---|---|---|
SQL Server 2019 (15.x) | 15 | 150 | 150, 140, 130, 120, 110, 100 |
SQL Server 2017 (14.x) | 14 | 140 | 140, 130, 120, 110, 100 |
Cơ sở dữ liệu Azure SQL | 12 | 150 | 150, 140, 130, 120, 110, 100 |
Phiên bản được quản lý cơ sở dữ liệu Azure SQL | 12 | 150 | 150, 140, 130, 120, 110, 100 |
SQL Server 2016 (13.x) | 13 | 130 | 130, 120, 110, 100 |
SQL Server 2014 (12.x) | 12 | 120 | 120, 110, 100 |
SQL Server 2012 (11.x) | 11 | 110 | 110, 100, 90 |
SQL Server 2008 R2 | 10,5 | 100 | 100, 90, 80 |
SQL Server 2008 | 10 | 100 | 100, 90, 80 |
SQL Server 2005 (9.x) | 9 | 90 | 90, 80 |
SQL Server 2000 (8.x) | 8 | 80 | 80 |