1

データベースが占有できる最大容量の割合を示す実行可能なストアド プロシージャが必要です。たとえばSQL Server 2005/2008、4 GB の DB 制限があり、2008R2 には 10 GB の制限があります (エクスプレス エディション)。

現在のデータベース サイズと未割り当て領域を取得できることはわかってEXEC sp-spaceusedいますが、未割り当て領域は任意のチャンク サイズのように見え、データベースが大きくなるにつれて新しいチャンクが割り当てられます。

DB の最大サイズ制限を取得するために呼び出すことができる手順はありますか? 理想的には、現在割り当てられているものと最大のものの割合が必要なので、DB が現在 2 GB で、SQL 2008 R2 (最大 10 GB) を使用している場合、プロシージャは 20.0 または 0.2 を返し、20% を示します。DB は任意の数の異なる SQL Server インストールに配置できるため、SQL サーバーのバージョンを想定したくなく、実行時に最大値を取得したいと考えています。

4

2 に答える 2

0

SELECT @@versionその文字列からバージョンとエディションを使用および解析できます。それを、特定の SQL バージョン/エディションに許可されている最大ストレージを持つ手動で入力されたデータ セットと比較する必要があります。

このようなものは、バージョン文字列からその情報を取得する必要があります

DECLARE @VersionString VARCHAR(500)
DECLARE @Product VARCHAR(50)
DECLARE @Edition VARCHAR(50)
SELECT @VersionString = @@VERSION
SET @Product = SUBSTRING(@VersionString, 0, PATINDEX('%-%', @VersionString))
SET @Edition = SUBSTRING(@VersionString, PATINDEX('%Corp%', @VersionString) + 13 , 18)
SELECT @Product
SELECT @Edition
于 2013-04-26T12:25:38.030 に答える