如何确定我的SqlServer版本+版本是否支持分区

时间:2018-06-28 10:30:02

标签: sql-server sql-server-2016 partitioning

SqlServer Standard从2016SP1开始提供分区。我可以运行查询以确定我当前安装的SqlServer是否支持分区吗?

我可以查询版本和版本以及推断ServicePack编号。但是,我不想将版本号硬编码到代码中。如果要为2016-Standard提供新的服务包,我希望避免分发修补程序。

谢谢

1 个答案:

答案 0 :(得分:0)

下面的示例检查是否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;

我看到您提到的不是硬编码版本号,但是由于产品版本和内部版本号是递增的,因此此方法不需要更改代码。