0

我们的数据库模式存储在一个文件中,该文件旨在用于生产用途,但我们也在本地机器上运行功能测试时使用。我们删除数据库并从此文件重建它,然后添加一组已知的测试数据。一切运作良好。

最近我们添加了一些性能改进。当我们向其中一张表添加分区时,问题就来了。

Msg 7736, Level 16, State 1
Server 'SERVERNAME\SQLEXPRESS', Line 4
Partition function can only be created in Enterprise edition of SQL Server. Only Enterprise edition
of SQL Server supports partitioning.

毫不畏惧,我添加了一个 if 语句来检查我们是否在启用分区之前在 Enterprise 下运行:

IF CHARINDEX('Enterprise', CONVERT(varchar(1000), SERVERPROPERTY('edition'))) > 0
BEGIN
    CREATE PARTITION FUNCTION [MyPartitionRange] (int)
    AS RANGE LEFT
    FOR VALUES (14200000, 14225000, 14250000, 14300000, 14350000, 14375000, 14400000, 14475000, 14500000, 14525000, 14550000, 14575000, 14600000, 14625000, 14650000, 14675000, 14700000, 14725000, 14750000, 14775000, 14800000, 14825000, 14850000, 14875000, 14900000, 14925000, 14950000, 14975000, 15000000 )
END

不幸的是,这仍然失败。我认为 SQL Server 在解析时告诉我们这个问题,CREATE PARTITION FUNCTION所以即使我们不使用它也会抛出错误。

有什么建议么?

4

1 回答 1

4

您可能认为这是一种 hack,但您可以将“创建分区...”放在一个字符串中,然后如果您使用正确的版本,则对其调用 sp_executesql。

于 2010-02-26T22:55:47.230 回答