sql >> Databáze >  >> RDS >> Sqlserver

Jak změnit úroveň kompatibility databáze s T-SQL

V SQL Server můžete použít ALTER DATABASE příkaz ke změně úrovně kompatibility databáze.

To může být užitečné, pokud máte databázi, která byla vytvořena v dřívější verzi SQL Server, ale nyní potřebujete používat funkce, které jsou dostupné pouze s vyšší úrovní kompatibility.

Například OPENJSON() Funkce je dostupná pouze při úrovni kompatibility 130 nebo vyšší. I když vaše instalace SQL Server může podporovat tuto úroveň kompatibility, stále můžete mít databáze, které používají nižší úroveň kompatibility. V tomto případě, pokud jste chtěli použít OPENJSON() proti těmto databázím byste museli zvýšit úroveň kompatibility na 130 nebo vyšší.

Příklad

Zde je příklad kódu, který mění kompatibilitu databáze.

ALTER DATABASE Pets  
SET COMPATIBILITY_LEVEL = 150;

Výsledek:

Commands completed successfully.

Databáze s názvem Pets nyní má úroveň kompatibility 150.

Zkontrolujte úroveň kompatibility databáze

Můžete použít sys.databases zobrazení systémového katalogu pro kontrolu kompatibility dané databáze nebo všech databází.

Zde je příklad kontroly Pets databáze.

SELECT compatibility_level
FROM sys.databases
WHERE name = 'Pets';

Výsledek:

+-----------------------+
| compatibility_level   |
|-----------------------|
| 150                   |
+-----------------------+

Úrovně kompatibility podle produktu

Zde je tabulka, která ukazuje úrovně kompatibility podporované každou edicí SQL Server a Azure SQL Database.

Produkt Verze databázového stroje Výchozí označení úrovně kompatibility Podporované hodnoty úrovně kompatibility
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
Azure SQL Database 12 150 150, 140, 130, 120, 110, 100
Instance spravovaná databází 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

  1. Implementace Levenshteinovy ​​vzdálenosti pro mysql/fuzzy vyhledávání?

  2. počet za každé spojení - optimalizace

  3. INDIE, skript STD Code Finder v PHP, MYSQL, JQUERY

  4. Jak mohu použít regex k rozdělení řetězce pomocí řetězce jako oddělovače?