Программное обнаружение версии SQL Server
-
03-07-2019 - |
Вопрос
Я использую C # с SMO и пытаюсь определить, к какой версии SQL Server (например, enterprise, standard) Я подключаюсь.Я знаю, как получить информацию о версии, но это говорит мне только о том, какая версия SQL Server (например, SQL Server 2008 против SQL Server 2005).
Кто-нибудь знает, как получить актуальную версию продукта (например, enterprise, standard)?
Мне нужна эта информация, потому что некоторые функции SQL Server являются только корпоративными.Таким образом, я мог бы просто попытаться вызвать их и перехватить исключение, но я бы предпочел предварительное обнаружение.
Спасибо!
Решение
Похоже, вы могли бы сделать это с помощью SMO и объекта Server.Есть такие свойства, как информация.Редакция, которая выглядит так, как будто она должна делать то, что вы хотите.
Другие советы
SELECT SERVERPROPERTY('productversion'),
SERVERPROPERTY ('productlevel'),
SERVERPROPERTY ('edition')
в моей системе возвращаются
9.00.1399.06, RTM, Express Edition
Похоже, этот метод работает только на SQL Server 2000 или более поздней версии, если какая-либо из ваших баз данных имеет версию 7.0 или меньше, вам придется использовать @@Version и манипулировать результатами, как опубликовали другие
Я всегда использовал @@Version (например.ВЫБЕРИТЕ @@Version и отредактируйте результат в коде), но эта статья выглядит довольно удобной;http://support.microsoft.com/kb/321185
Единственная проблема с использованием SERVERPROPERTY, согласно ссылке...заключается в том, что это не будет работать со старой версией SQL Server.
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)
Проверьте реестр.В этом вопросе был хороший метод, который вы могли бы адаптировать из сценария PowerShell:
Как мне проверить наличие версии SQL Server с помощью Powershell?