| Termin | Definicja |
|---|---|
| SERVERPROPERTY('ProductVersion') | SERVERPROPERTY('ProductVersion') zwraca pełny numer wersji instancji SQL Server. Co zwraca ta funkcjaSERVERPROPERTY to funkcja systemowa SQL Server przyjmująca nazwę właściwości jako tekst. Wywołanie SELECT SERVERPROPERTY('ProductVersion') zwraca numer wersji w postaci czteroczłonowej, na przykład złożonej z numeru głównego, pomocniczego, numeru kompilacji i rewizji. Numer główny odpowiada wersji produktu, przy czym mapowanie nie jest oczywiste i trzeba je sprawdzić w tabeli wersji, a nie zgadywać. Wartość zwracana ma typ sql_variant, więc przy łączeniu z tekstem trzeba ją rzutować, na przykład CAST(SERVERPROPERTY('ProductVersion') AS nvarchar(128)). W sąsiedztwie przydają się inne właściwości: ProductLevel zwracające poziom poprawek, Edition z nazwą edycji, EngineEdition rozróżniające wersję Express, Standard, Enterprise i chmurową, oraz IsClustered i Collation. Czym różni się od pozostałych sposobów sprawdzenia wersjiPolecenie SELECT @@VERSION zwraca długi napis zawierający wersję, poziom poprawek, edycję i wersję systemu operacyjnego, czytelny dla człowieka, ale kiepski do porównywania w skrypcie. SERVERPROPERTY daje wartość nadającą się do warunku, bo można ją rozbić po kropkach i porównać liczbowo. Trzecim źródłem jest widok sys.dm_os_host_info opisujący system, na którym silnik działa. Wersja instancji nie jest tożsama z wersją bazy: baza przeniesiona ze starszej instancji zachowuje własny poziom zgodności, widoczny w kolumnie compatibility_level widoku sys.databases, i to on decyduje o dostępności części funkcji języka. Osobno warto sprawdzić wersję narzędzia klienckiego. SQL Server Management Studio ma własną numerację, niezwiązaną z wersją silnika. Po co w ogóle to sprawdzaćPowodów jest kilka bardzo praktycznych. Programy handlowe wymagają konkretnego minimum wersji silnika i odmawiają aktualizacji na starszej instancji, zwykle z komunikatem wskazującym wymaganą wersję. Kopia zapasowa wykonana na nowszej instancji nie da się odtworzyć na starszej, i nie ma na to obejścia poza eksportem danych. Poziom poprawek decyduje o podatnościach, a instancje Express mają twarde ograniczenia rozmiaru pojedynczej bazy oraz wykorzystania pamięci i rdzeni, co przy rosnącej bazie sprzedażowej staje się realną ścianą. Najczęstsza pomyłka polega na sprawdzeniu wersji na jednej instancji, podczas gdy na serwerze działa ich kilka, każda pod własną nazwą i portem, a program łączy się do innej niż testowana. Serwery baz danych w małych firmachWdrażamy i utrzymujemy oprogramowanie handlowe oparte o SQL Server, więc aktualizacje instancji, migracje baz na nowszy silnik i przenoszenie ich na wydajniejszy sprzęt należą do naszej codziennej pracy. Sprawdzamy przy tym zgodność wersji z wymaganiami Subiekta, WAPRO czy Comarcha, konfigurujemy kopie zapasowe wraz z testowym odtworzeniem i ustawiamy monitorowanie wolnego miejsca, bo zapełniony dysk logów potrafi zatrzymać sprzedaż w środku dnia. Pracujemy również nocą, kiedy migracja nie koliduje z wystawianiem dokumentów. |