Jakie są możliwe sposoby określenia wdrożonej wersji programu SQL Server?
Próbowałem to zrobić za pomocą oprogramowania SQL Server. Chcę to zrobić za pomocą instrukcji SQL wiersza poleceń.
sql-server-2008
version
Yameen Bashir
źródło
źródło
Odpowiedzi:
Oto możliwe sposoby wyświetlania wersji:
Metoda 1: Połącz się z wystąpieniem programu SQL Server, a następnie uruchom następującą kwerendę:
Przykład wyniku tego zapytania jest następujący:
Metoda 2: Połącz się z serwerem za pomocą Eksploratora obiektów w SQL Server Management Studio. Po podłączeniu Object Explorer wyświetli informacje o wersji w nawiasach, wraz z nazwą użytkownika używaną do łączenia się z konkretną instancją SQL Server.
Metoda 3: Spójrz na kilka pierwszych wierszy pliku dziennika błędów dla tego wystąpienia. Domyślnie dziennik błędów znajduje się w lokalizacji Program Files \ Microsoft SQL
Server\MSSQL.n\MSSQL\LOG\ERRORLOG
andERRORLOG.n
files. Wpisy mogą wyglądać następująco:Jak widać, ten wpis zawiera wszystkie niezbędne informacje o produkcie, takie jak wersja, poziom produktu, wersja 64-bitowa i 32-bitowa, wydanie programu SQL Server oraz wersja systemu operacyjnego, na którym działa SQL Server.
Metoda 4: Połącz się z wystąpieniem programu SQL Server, a następnie uruchom następującą kwerendę:
Uwaga Ta kwerenda działa z każdym wystąpieniem programu SQL Server 2000 lub nowszej wersji
źródło
Podaje odpowiednio 8,00, 9,00, 10,00 i 10,50 dla SQL 2000, 2005, 2008 i 2008R2.
Wypróbuj również rozszerzoną procedurę systemu
xp_msver
. Możesz wywołać tę procedurę składowaną, na przykładźródło
TL; DR
Używa SQLCMD (dostarczanego z SQL Server) do łączenia się z lokalną instancją serwera za pomocą Windows auth, zgłasza błąd, jeśli sprawdzenie wersji się nie powiedzie i zwraca
@@ERROR
jako wiersz poleceń,ERRORLEVEL
jeśli> = 16 (a druga linia przechodzi do:ExitFail
etykiety, jeśli wspomniany powyżejERRORLEVEL
to> = 1).Watchas, Gotchas i więcej informacji
W przypadku SQL 2000+ możesz użyć parametru SERVERPROPERTY, aby określić wiele z tych informacji.
Chociaż SQL 2008+ obsługuje właściwości
ProductMajorVersion
&ProductMinorVersion
,ProductVersion
istnieje od 2000 roku (należy pamiętać, że jeśli właściwość nie jest obsługiwana, funkcja zwracaNULL
).Jeśli jesteś zainteresowany wcześniejszymi wersjami, możesz użyć
PARSENAME
funkcji do podzieleniaProductVersion
(pamiętając, że "części" są numerowane od prawej do lewej, czyliPARSENAME('a.b.c', 1)
zwrotyc
).Pamiętaj też, że
PARSENAME('a.b.c', 4)
zwracaNULL
, ponieważ SQL 2005 i wcześniejsze wersje zawierały tylko 3 części w numerze wersji!W przypadku SQL 2008+ możesz po prostu użyć:
W przypadku SQL 2000-2005 możesz użyć:
(
PARSENAME(...,0)
to trik poprawiający czytelność)Tak więc sprawdzenie wersji SQL 2000+ wyglądałoby tak:
Jest to o wiele prostsze, jeśli interesuje Cię tylko SQL 2008+, ponieważ
SERVERPROPERTY('ProductMajorVersion')
zwraca sięNULL
z wcześniejszymi wersjami, więc możesz użyć:I możesz użyć właściwości
ProductLevel
iEdition
(lubEngineEdition
), aby określić odpowiednio RTM / SP n / CTP n i Dev / Std / Ent / etc.FYI, główne numery wersji SQL to:
I to wszystko działa również w przypadku SQL Azure!
EDYTOWANE: Możesz również chcieć sprawdzić poziom zgodności z bazą danych, ponieważ może być ustawiony na niższą kompatybilność.
źródło
Oto, co zrobiłem, aby znaleźć wersję: po prostu napisz,
SELECT @@version
a otrzymasz wersję.źródło
Po prostu użyj
Przykładowe dane wyjściowe
Źródło: Jak sprawdzić wersję serwera sql? (Wyjaśniono różne sposoby)
źródło
jeśli ta wartość wynosi 0, nie jest to wydanie ekspresowe
źródło