Pergunta

Eu estou usando C # com SMO e tentar detectar qual edição do SQL Server (por exemplo, empresa, standard) Eu estou conectando. Eu sei como obter as informações de versão, mas isso só me diz qual a versão do SQL Server (por exemplo, SQL Server 2008 vs SQL Server 2005).

Alguém sabe como obter a edição do produto real (por exemplo, empresa, standard)?

Eu preciso esta informação porque alguns recursos do SQL Server são apenas empresarial. Assim, eu poderia apenas tentar chamá-los e capturar a exceção, mas eu prefiro muito mais uma detecção inicial.

Obrigado!

Foi útil?

Solução

Parece que você pode ser capaz de fazê-lo através de SMO eo objeto Server. Há imóveis como Information.Edition que parece que deve fazer o que quiser.

Outras dicas

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

No meu sistema retorna

9.00.1399.06, RTM, Express Edition

Parece que esta técnica só funciona no SQL Server 2000 ou mais tarde, se algum dos seus bancos de dados são 7,0 ou menos, você terá que usar @@ Version e manipular os resultados, como outros já publicados

Eu sempre usei @@ Version, mas este artigo parece muito útil (por exemplo, SELECT @@ Version e manipluted o resultado no código.); http://support.microsoft.com/kb/321185

O único problema com o uso SERVERPROPERTY, de acordo com o link ... é que isto não vai funcionar com a versão mais antiga do SQL Server.

select @@version

Retorna a versão e qual edição. Aqui:

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)

Verifique o registro. Esta questão tinha um método bom você poderia adaptar a partir do PowerShell script:

Como faço para verificar o SQL server Versão usando PowerShell?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top