Pregunta

Estoy usando C # con SMO e intentando detectar a qué edición de SQL Server (por ejemplo, empresa, estándar) me estoy conectando. Sé cómo obtener la información de la versión, pero eso solo me dice qué versión de SQL Server (por ejemplo, SQL Server 2008 vs SQL Server 2005).

¿Alguien sabe cómo obtener la edición real del producto (por ejemplo, empresa, estándar)?

Necesito esta información porque algunas características de SQL Server son solo empresariales. Por lo tanto, podría intentar llamarlos y detectar la excepción, pero preferiría una detección por adelantado.

¡Gracias!

¿Fue útil?

Solución

Parece que podría hacerlo a través de SMO y el objeto Servidor. Hay propiedades como Information.Edition que parece que debería hacer lo que quieres.

Otros consejos

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

en mi sistema devuelve

9.00.1399.06, RTM, Express Edition

Parece que esta técnica solo funciona en SQL Server 2000 o posterior, si alguna de sus bases de datos tiene 7.0 o menos, tendrá que usar @@ Version y manipular los resultados como otros han publicado

Siempre he usado @@ Version (por ejemplo, SELECT @@ Version y he multiplicado el resultado en código), pero este artículo parece bastante útil; http://support.microsoft.com/kb/321185

El único problema con el uso de SERVERPROPERTY, según el enlace ... es que esto no funcionará con una versión anterior de SQL Server.

select @@version

Devuelve la versión y qué edición. Aquí:

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)

Comprueba el registro. Esta pregunta tenía un buen método que podría adaptar desde el script de PowerShell:

¿Cómo compruebo el SQL? Versión de servidor utilizando Powershell?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top