0

データベース スキーマは、本番環境での使用を目的とした単一のファイルに保存されますが、ローカル ボックスで機能テストを実行するときにも使用します。データベースを削除してこのファイルから再構築し、既知のテスト データ セットを追加します。すべてがうまく機能していました。

最近、いくつかのパフォーマンス改善を追加しました。テーブルの 1 つにパーティショニングを追加したときに問題が発生しました。

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.

ひるむことなく、パーティショニングを有効にする前に、Enterprise で実行されているかどうかを確認するために if ステートメントを追加しました。

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

これはハックだと思うかもしれませんが、適切なエディションを使用している場合は、'create partition...' を文字列に入れてから sp_executesql を呼び出すことができます。

于 2010-02-26T22:55:47.230 に答える