SQL пропустить запуск функции создания раздела под SQL Server Express - PullRequest
0 голосов
/ 27 февраля 2010

Наша схема базы данных хранится в одном файле, который предназначен для производственного использования, но мы также используем его при выполнении функциональных тестов на наших локальных компьютерах. Мы удаляем базу данных и перестраиваем ее из этого файла, а затем добавляем известный набор тестовых данных. Все работало хорошо.

Недавно мы добавили некоторые улучшения производительности. Проблема возникла, когда мы добавили разбиение в одну из таблиц.

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, поэтому он выдает ошибку, даже если мы ее не используем.

Есть предложения?

1 Ответ

4 голосов
/ 27 февраля 2010

Вы можете считать это хаком, но вы можете поместить строку 'create partition ...' в строку и затем вызвать sp_executesql, если вы находитесь в нужной редакции.

...