1
Wenn ich versuche, die Kompatibilitätsstufe für SQL Server in einem Skript festzulegen, wird für SQL Server 2008 eine Fehlermeldung ausgegeben. Ich möchte, dass dieses Skript für alle Server ausgeführt wird. 2008, 2012 oder 2014, die wir derzeit unterstützen.Festlegen der SQL Server-Kompatibilitätsstufe basierend auf dem Server im Skript
-- Set database compatibility --
IF SUBSTRING(CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR),1 ,2) >= 11
BEGIN
RAISERROR ('sql server 12 and above', 10, 1)
ALTER DATABASE JJAI_TESTDB SET COMPATIBILITY_LEVEL = 110
END
ELSE
BEGIN
RAISERROR ('sql server 2008',10, 1)
ALTER DATABASE JJAI_TESTDB SET COMPATIBILITY_LEVEL = 100
END
GO
Unterhalb der Fehler ist:
Msg 15048, Level 16, State 1, Line 5
Valid values of the database compatibility level are 80, 90, or 100.
Was ist der Fehler? –
Es sieht so aus, als ob der Fehler in der ersten alter-Anweisung auftritt. Welche Produktversion erhalten Sie, wenn Sie mit den if-Kriterien drucken? – SMM
Meine Produktversion ist 2008. Das Skript wird also nicht ausgeführt, aber die Kompilierung selbst oder die Vorverarbeitung schlägt fehl. –