Wenn Microsoft eine neue Version des SQL Servers released, bleiben neue Funktionen in der Regel der neuesten „Kompatibilitätsstufe“ vorbehalten. Beispielsweise ist die „Parameter Sensitive Plan Optimization (PSPO)“ aus dem SQL Server 2022 nur in Datenbanken verfügbar, die unter der Kompatibilitätsstufe („Level“) SQL Server 2022 ausgeführt werden.
Datenbanken behalten ihr Kompatibilitätslevel auch bei einem Upgrade des Servers, jeder SQL kann Datenbanken jeder älteren Version ausführen. Grundsätzlich eine gute Idee. Das bedeutet aber, ein [DB]Admin muss je nach Software ab und zu die Datenbanken aktualisieren. Manchmal wegen der neuen Features, manchmal weil Software das benötigt.
SQL Server Kompatibilitätsgrad / Kompatibilitätslevel
Wichtig: Die Versionsnummern für SQL Server und Azure SQL-Datenbank sind nicht so richtig miteinander vergleichbar. Azure SQL basiert zwar auf dem gleichen Code, aber die SQL Engine in Azure ist „immer“ die neueste. Zum Beispiel ist v12 von Azure SQL „neuer“ als v15 von einem lokalen SQL Server.
80 | SQL Server 2000 |
90 | SQL Server 2005 |
100 | SQL Server 2008 |
110 | SQL Server 2012 |
120 | SQL Server 2014 |
130 | SQL Server 2016 |
140 | SQL Server 2017 |
150 | SQL Server 2019 (+Azure SQL) |
160 | SQL Server 2022 |
Lösung
Es gibt zwei Möglichkeiten, das Upgrade für eine Datenbank auszuführen.
Microsoft SQL Management Studio
Im SMSS geht das in der grafischen Oberfläche sehr komfortabel:
- SMSS „Als Administrator“ starten
- Mit dem SQL Server verbinden
- Rechte MT auf die Datenbank > Eigenschaften
- Links in der Liste auf „Optionen“ > Rechts das „Kompatibilitäts Level“ auswählen
SQL Kommando
An einer SQL Shell, einer beliebigen – solange mit DBO-Rechten verbunden, kann man das mit diesem Einzeiler erledigen:
ALTER DATABASE <DB-NAME>
SET COMPATIBILITY_LEVEL = 150