Programmatische SQL Server Edition erkennt
-
03-07-2019 - |
Frage
Ich bin mit C # mit SMO und versuche, zu erkennen, welche Edition von SQL Server (zum Beispiel Unternehmen, Standard) ich den Anschluss an. Ich weiß, wie die Versionsinformationen zu erhalten, aber das sagt mir nur, welche Version von SQL Server (zum Beispiel SQL Server 2008 vs SQL Server 2005).
Wer weiß, wie die eigentliche Produkt Ausgabe erhalten (zum Beispiel Unternehmen, Standard)?
Ich brauche diese Informationen, da einige SQL Server-Funktionen nur Unternehmen sind. So konnte ich nur versuchen, sie zu nennen und die Ausnahme abfangen, aber ich würde viel lieber eine Voraberkennung.
Danke!
Lösung
Es sieht aus wie Sie es über SMO und das Server-Objekt zu tun, vielleicht in der Lage. Es gibt Eigenschaften wie Information.Edition, die wie es aussieht, sollte das tun, was Sie wollen.
Andere Tipps
SELECT SERVERPROPERTY('productversion'),
SERVERPROPERTY ('productlevel'),
SERVERPROPERTY ('edition')
auf meinem System zurück
9.00.1399.06, RTM, Express Edition
Es scheint, funktioniert diese Technik nur auf SQL Server 2000 oder höher, wenn eine Ihrer Datenbanken 7,0 oder weniger ist, haben Sie @@ Version verwenden und die Ergebnisse zu manipulieren, wie andere geschrieben haben
Ich habe immer verwendet @@ Version (zB SELECT @@ Version und manipluted das Ergebnis im Code.), Aber dieser Artikel sieht ziemlich handlich; http://support.microsoft.com/kb/321185
Das einzige Problem mit SERVER verwenden, da pro Link ... ist, dass dies nicht mit älterer Version von SQL Server arbeiten.
select @@version
Gibt Version und welche Ausgabe. Hier:
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)
Sie die Registrierung überprüfen. Diese Frage hatte eine gute Methode, die Sie aus dem Powershell-Skript anpassen können: