8

SMO で C# を使用しており、接続している SQL Server のエディション (エンタープライズ、標準など) を検出しようとしています。バージョン情報を取得する方法は知っていますが、SQL Server のバージョンしかわかりません (たとえば、SQL Server 2008 と SQL Server 2005 など)。

実際の製品エディション (エンタープライズ、スタンダードなど) を入手する方法を知っている人はいますか?

一部の SQL Server 機能はエンタープライズ専用であるため、この情報が必要です。したがって、それらを呼び出して例外をキャッチすることもできますが、事前に検出することをお勧めします。

ありがとう!

4

5 に答える 5

21
SELECT  SERVERPROPERTY('productversion'), 
        SERVERPROPERTY ('productlevel'), 
        SERVERPROPERTY ('edition')

私のシステムでは

9.00.1399.06, RTM, Express Edition

この手法は SQL Server 2000 以降でのみ機能するようです。データベースのいずれかが 7.0 以下の場合は、@@Version を使用して、他の人が投稿したように結果を操作する必要があります。

于 2009-03-02T15:19:28.953 に答える
6

SMO と Server オブジェクトを介して実行できるようです。Information.Edition のようなプロパティがあり、それはあなたが望むことをするはずです。

于 2009-03-02T15:22:11.363 に答える
4

私は常に @@Version を使用してきました (例: SELECT @@Version を実行し、その結果をコードで操作する) が、この記事は非常に便利に見えます。 http://support.microsoft.com/kb/321185

リンクによると、SERVERPROPERTY を使用する際の唯一の問題は、これが古いバージョンの SQL Server では機能しないことです。

于 2009-03-02T15:15:11.413 に答える
3
select @@version

バージョンとエディションを返します。ここ:

Microsoft SQL Server 2005 - 9.00.4035.00 (インテル X86)
    2008 年 11 月 24 日 13:01:59
    Copyright (c) 1988-2005 Microsoft Corporation
    Windows NT 5.2 の Developer Edition (ビルド 3790: Service Pack 2)
于 2009-03-02T15:15:26.077 に答える