В приведенном ниже примере проверяется, поддерживает ли 1) редакция таблицы или 2) версия SQL - SQL 2016 SP1 или более поздняя версия.
IF
CAST(SERVERPROPERTY('Edition') AS varchar(30)) LIKE 'Enterprise%'
OR CAST(SERVERPROPERTY('Edition') AS varchar(30)) LIKE 'Developer%'
OR CAST(PARSENAME(CAST(SERVERPROPERTY('ProductVersion') AS varchar(30)), 4) AS int) > 13 --SQL 2017 and later
OR (
CAST(PARSENAME(CAST(SERVERPROPERTY('ProductVersion') AS varchar(30)), 4) AS int) = 13 --SQL 2016
AND CAST(PARSENAME(CAST(SERVERPROPERTY('ProductVersion') AS varchar(30)), 2) AS int) >= 4001) --SP1 or greater
BEGIN
PRINT 'partitioning supported'
END;
Я вижу, вы упомянули не жестко кодируемые номера версий, но этот метод не потребует изменения кода, поскольку версия продукта и номера сборки являются инкрементными.