質問

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

最近、いくつかのパフォーマンスの改善を追加しました。問題は、テーブルの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.

da然と、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 そのため、使用しなくてもエラーがスローされます。

助言がありますか?

役に立ちましたか?

解決

これをハックと考えるかもしれませんが、「パーティションを作成する...」を文字列に入れてから、正しいエディションにある場合はSP_EXECUTESQLを呼び出すことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top