В принципе, можно ли определить, подключает ли кто-нибудь мою программу к SQL Server Compact или Express Edition? Я хочу иметь возможность ограничивать разные версии моего продукта разными версиями SQL Server.
ни одно из предложенных решений не работает для SQL Server Compact Edition (как 3.x, так и 4.x) ...





Запустите этот оператор SQL
SELECT @@VERSION
и он даст вам ReultSet (один столбец в виде строки) с такой версией
Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4)
Вопрос касался компактной версии SQL Server, и (по крайней мере, в версии 4) это не работает: Ошибка: «Имя глобальной переменной @@ VERSION недействительно»
Он сказал компактное или экспресс-издание. Я почти уверен, что это работает в экспресс-версии. Что касается компактного колодца, я думаю, это может сработать "var version = typeof (System.Data.SqlServerCe.SqlCeConnection) .Assembly.Get Name (). Version;"
После подключения к базе данных вы всегда можете запустить T-Sql:
SELECT SERVERPROPERTY ('edition')
Это должно дать вам разные версии
Другая полезная информация может быть получена из:
SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel')
SERVERPROPERTY не поддерживается в компактном выпуске 4. «Ошибка: функция не распознается SQL Server Compact. [Имя функции = SERVERPROPERTY, Тип данных (если известен) =]» Пока что ни один из других методов опубликовал. Я удивлен, что оригинальный плакат принял этот ответ. Возможно, это сработало в SQL Server Compact Edition 3.x
Также есть функция SERVERPROPERTY, которая может дать вам такие вещи, как 'edition':
SELECT SERVERPROPERTY ('edition')
Не поддержано компактным изданием, которое было вопросом оригинального плаката.
Статья базы знаний Майкрософт KB321185 описывает, как определить текущий номер версии Microsoft SQL Server и соответствующий уровень продукта или пакета обновления.
В нем также описывается, как определить конкретный выпуск, если вы используете Microsoft SQL Server 2000 или Microsoft SQL Server 7.0.
По этой ссылке нет вообще обсуждает компактное издание, что является вопросом оригинального плаката.
@JohnC, с другой стороны, последнее предложение: «Я хочу иметь возможность ограничивать разные версии моего продукта разными версиями SQL Server». и тег «sql server» вводит в заблуждение, так как термин «SQL Server» обычно называют серверным продуктом. Поскольку он принял ответ, я полагаю, что OP не имел в виду компактную версию.
Как вы на самом деле это сделали, потому что ни один из ответов не поддерживается в SQL Server compact edition? (SQL CE 4)