2009-03-02 10 views
8

Sto utilizzando C# con SMO e sto tentando di rilevare l'edizione di SQL Server (ad esempio, aziendale, standard) a cui mi sto collegando. So come ottenere le informazioni sulla versione, ma mi dice solo quale versione di SQL Server (ad esempio, SQL Server 2008 vs SQL Server 2005).Rileva a livello di codice SQL Server Edition

Qualcuno sa come ottenere l'effettiva edizione del prodotto (ad es. Impresa, standard)?

Ho bisogno di queste informazioni perché alcune funzionalità di SQL Server sono solo aziendali. Quindi, potrei semplicemente provare a chiamarli e rilevare l'eccezione, ma preferirei molto un rilevamento anticipato.

Grazie!

risposta

6

Sembra che tu possa essere in grado di farlo tramite SMO e l'oggetto Server. Ci sono proprietà come Information.Edition che sembra dovrebbe fare quello che vuoi.

+0

Apprezzo tutte le risposte che includevano @@ versione, ma ero davvero alla ricerca di qualcosa di simile. La proprietà Information.Edition sul Serverobject è ciò di cui ho bisogno (anche se io che era un enum e non una stringa). – manu08

4

Ho sempre usato @@ Version (ad esempio SELECT @@ Version e manipolato il risultato in codice), ma questo articolo sembra abbastanza utile; http://support.microsoft.com/kb/321185

L'unico problema con l'utilizzo di SERVERPROPERTY, come per il collegamento ... è che questo non funzionerà con la versione precedente di SQL Server.

3
select @@version 

Restituisce la versione e quale edizione. Qui:

 
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) 
21
SELECT SERVERPROPERTY('productversion'), 
     SERVERPROPERTY ('productlevel'), 
     SERVERPROPERTY ('edition') 

sul mio sistema restituisce

9.00.1399.06, RTM, Express Edition 

Sembra che questa tecnica funziona solo su SQL Server 2000 o versione successiva, se uno dei tuoi database sono 7,0 o meno, dovrete usare @@ Version e manipolare i risultati come altri hanno pubblicato

+0

funziona anche su SQL Azure CTP –

Problemi correlati