Программно определять SQL Server Edition - PullRequest
8 голосов
/ 02 марта 2009

Я использую C # с SMO и пытаюсь определить, к какой редакции SQL Server (например, корпоративной, стандартной) я подключаюсь. Я знаю, как получить информацию о версии, но это говорит только о том, какая версия SQL Server (например, SQL Server 2008 против SQL Server 2005).

Кто-нибудь знает, как получить актуальную версию продукта (например, корпоративная, стандартная)?

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

Спасибо!

Ответы [ 5 ]

21 голосов
/ 02 марта 2009
SELECT  SERVERPROPERTY('productversion'), 
        SERVERPROPERTY ('productlevel'), 
        SERVERPROPERTY ('edition')

в моей системе возвращает

9.00.1399.06, RTM, Express Edition

Похоже, что этот метод работает только на SQL Server 2000 или более поздней версии. Если какая-либо из ваших баз данных имеет версию 7.0 или ниже, вам придется использовать @@ Version и манипулировать результатами, как другие опубликовали

6 голосов
/ 02 марта 2009

Похоже, что вы могли бы сделать это через SMO и объект Server. Существуют такие свойства, как Information.Edition, который выглядит так, как будто он должен делать то, что вы хотите.

4 голосов
/ 02 марта 2009

Я всегда использовал @@ Version (например, SELECT @@ Version и манипулировал результатом в коде), но эта статья выглядит довольно удобной; http://support.microsoft.com/kb/321185

Единственная проблема с использованием SERVERPROPERTY по ссылке ... заключается в том, что это не будет работать с более старой версией SQL Server.

3 голосов
/ 02 марта 2009
select @@version

Возвращает версию и версию. Здесь:

Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) 
    Nov 24 2008 13:01:59 
    Copyright (c) 1988-2005 Microsoft Corporation
    Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
0 голосов
/ 21 октября 2016

Проверьте реестр. У этого вопроса был хороший метод, который можно адаптировать из сценария PowerShell:

Как проверить версию SQL Server с помощью Powershell?

...