W jaki sposób pobrać metadane dotyczące SQL Servera?
W jaki sposób za pomocą T-SQL pobrać dane dotyczące m.in. nazwy serwera, instancji, czy zainstalowanej wersji? Rozwiązaniem są metadane i funkcje konfiguracyjne, które dostarczają takich informacji.
Jedną z takich konfiguracyjnych funkcji jest @@SERVERNAME zwracająca ciąg znakowy w postaci nazwy serwera, w przypadku lokalnie zainstalowanego serwera jest to naszego nazwa komputera.
SELECT @@SERVERNAME ;
Inną funkcją jest @@SERVICENAME dostarczająca nazwę SQL Server-a.
SELECT @@SERVICENAME ;
A za pomocą funkcji @@VERSION możemy uzyskać informacje o wersji serwera. W poniższym przykładzie jest serwer w wersji 2012.
SELECT @@VERSION ;
Funkcje konfiguracyjne pozwalają także pobrać nazwę języka.
SELECT @@LANGUAGE ;
Te same i więcej informacji możemy uzyskać za pomocą funkcji metadanych: SERVERPROPERTY. Pobiera ona jeden argument w postaci łańcucha znakowego stanowiącego nazwę właściwości. I tak właściwość Edition zwraca nazwę edycji serwera. Proszę zwrócić uwagę, że brak w tym przypadku informacji na temat wersji serwera.
SELECT SERVERPROPERTY ( 'Edition' )
Natomiast właściwość EngineEdition zwraca numer edycji serwera. W tym przypadku jest to nr 3.
SELECT SERVERPROPERTY ( 'EngineEdition' )
Poniżej przedstawiam możliwe wartości zwracane przez funkcję wraz z ich znaczeniem:
1 = Personal or Desktop Engine (Not available in SQL Server 2005 and later versions.) 2 = Standard (This is returned for Standard, Web, and Business Intelligence.) 3 = Enterprise (This is returned for Evaluation, Developer, and both Enterprise editions.) 4 = Express (This is returned for Express, Express with Tools and Express with Advanced Services) 5 = SQL Database 6 - SQL Data Warehouse
Właściwość InstanceName podaje nazwę instancji SQL Server, lecz dla domyślnej instancji zwraca wartość NULL.
SELECT SERVERPROPERTY ( 'InstanceName' )
MachineName lub ServerName zwracają nazwe komputera lub serwera z zainstalowanym SQL Server. jest to ta sama wartość co w przypadku funkcji konfiguracyjnej @@SERVERNAME.
SELECT SERVERPROPERTY ( 'MachineName' )
Aby pobrać poziom i wersję SQL Server, wystarczy zastosowac właściwości: ProductVersion i ProductLevel.
SELECT SERVERPROPERTY ( 'ProductVersion' ) as ProductVersion, SERVERPROPERTY ( 'ProductLevel' ) as ProductLevel ;