如何判断我的SqlServer version+Edition是否支持分区
How to determine if my SqlServer version+Edition support partitioning
SqlServer Standard 从 2016SP1 开始提供分区功能。是否有查询可以运行 确定我当前安装的 SqlServer 是否支持分区?
我可以查询版本和版本以及推断 ServicePack 号。但是,我不想将版本号硬编码到代码中。如果为 2016-Standard 提供了新的服务包,我想避免必须分发修复程序。
谢谢
下面的示例检查 1) 版本是否支持 table 分区或 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;
我看到你提到的不是硬编码版本号,但这种方法不需要更改代码,因为产品版本和内部版本号是递增的。
SqlServer Standard 从 2016SP1 开始提供分区功能。是否有查询可以运行 确定我当前安装的 SqlServer 是否支持分区?
我可以查询版本和版本以及推断 ServicePack 号。但是,我不想将版本号硬编码到代码中。如果为 2016-Standard 提供了新的服务包,我想避免必须分发修复程序。
谢谢
下面的示例检查 1) 版本是否支持 table 分区或 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;
我看到你提到的不是硬编码版本号,但这种方法不需要更改代码,因为产品版本和内部版本号是递增的。