Ich verwende C # mit SMO und versuche herauszufinden, mit welcher Edition von SQL Server (z. B. Unternehmen, Standard) ich mich verbinde. Ich weiß, wie die Versionsinformationen abgerufen werden, aber das sagt mir nur, welche Version von SQL Server (z. B. SQL Server 2008 vs SQL Server 2005).
Weiß jemand, wie man die tatsächliche Produktausgabe (z.B. Unternehmen, Standard) bekommt?
Ich brauche diese Informationen, weil einige SQL Server-Funktionen nur Unternehmen sind. Daher könnte ich einfach versuchen, sie anzurufen und die Ausnahme abzufangen, aber ich würde eine Vorabdetektion bevorzugen.
Danke!
Es sieht so aus, als könnten Sie das über SMO und das Server-Objekt tun. Es gibt Eigenschaften wie Information.Edition, die aussehen, als ob es tun sollte, was Sie wollen.
auf meinem System gibt
zurück %Vor%Es scheint, dass diese Technik nur mit SQL Server 2000 oder höher funktioniert. Wenn Ihre Datenbanken unter 7.0 oder niedriger sind, müssen Sie die Version @@ verwenden und die Ergebnisse so manipulieren, wie andere sie veröffentlicht haben
Ich habe immer @@ Version verwendet (zB SELECT @@ Version und das Ergebnis im Code manipuliert), aber dieser Artikel sieht ziemlich praktisch aus; Ссылка
Das einzige Problem bei der Verwendung von SERVERPROPERTY gemäß dem Link ... ist, dass dies nicht mit älteren Versionen von SQL Server funktioniert.
Überprüfen Sie die Registrierung. Diese Frage hatte eine gute Methode, die Sie aus dem PowerShell-Skript anpassen konnten:
Tags und Links sql sql-server smo