| Termin | Definicja |
|---|---|
| Usuwanie funkcji | Usuwanie funkcji poleceniem DROP FUNCTION trwale kasuje jej definicję z bazy danych. Co dokładnie kasuje to polecenieDROP FUNCTION usuwa z bazy definicję funkcji użytkownika: skalarnej, zwracającej pojedynczą wartość, albo tablicowej, zwracającej zbiór wierszy. Nazwę podaje się wraz ze schematem, na przykład dbo przed nazwą, bo bez tego serwer szuka obiektu w schemacie domyślnym dla bieżącego użytkownika. Nowsze wersje SQL Server pozwalają dopisać warunek istnienia obiektu, dzięki czemu skrypt wdrożeniowy nie przerywa pracy, gdy funkcji już nie ma. Jednym poleceniem można usunąć kilka funkcji naraz, wypisując je po przecinku. Operacja jest natychmiastowa i nie da się jej cofnąć inaczej niż odtworzeniem definicji z kopii albo ze skryptu. Zależności, które blokują usunięcieJeśli funkcja została utworzona z powiązaniem ze schematem i korzysta z niej widok indeksowany, kolumna wyliczana albo ograniczenie kolumny, serwer odmówi wykonania polecenia i zwróci komunikat o odwołaniu do obiektu. To zachowanie jest zaletą, nie przeszkodą — chroni przed rozsypaniem struktury. Gorzej wygląda sytuacja bez tego powiązania: funkcję da się usunąć, a procedury i widoki, które ją wywołują, zostaną w bazie i wywalą się dopiero przy pierwszym uruchomieniu, często kilka dni później. Przed usunięciem czegokolwiek warto przejrzeć widok systemowy z zależnościami wyrażeń oraz przeszukać definicje obiektów pod kątem nazwy funkcji, bo wywołanie budowane dynamicznie w tekście zapytania nie pojawi się w żadnej automatycznej liście zależności. Uprawnienia i wdrożenia na produkcjiDo usunięcia funkcji potrzebne jest prawo modyfikacji schematu albo członkostwo w roli właściciela bazy — zwykłe konto aplikacyjne go nie ma i dobrze, żeby nie miało. Częsty błąd to uruchomienie skryptu porządkującego na bazie produkcyjnej w godzinach pracy, w środku transakcji innych użytkowników. Sensowna kolejność wygląda inaczej: kopia bazy, odtworzenie jej na instancji testowej, wykonanie skryptu tam, sprawdzenie procedur wywołujących funkcję i dopiero potem wdrożenie w oknie serwisowym. Warto zapisać definicję usuwanej funkcji do pliku, bo wygenerowanie jej z powrotem zajmuje wtedy minutę, a nie pół dnia rekonstrukcji z pamięci. Utrzymanie baz systemów handlowychBazy Subiekta, WAPRO i systemów Comarch stoją na SQL Server i zawierają zarówno obiekty producenta, jak i dopisane na miejscu funkcje raportujące. Usunięcie tych pierwszych podczas porządków kończy się błędem programu przy wystawianiu dokumentu, a odtworzenie wymaga zwykle ponownej instalacji lub aktualizacji wersji bazy. Zajmujemy się wdrażaniem i serwisem takiego oprogramowania: sprawdzamy poprawność kopii, odtwarzamy bazy po nieudanych aktualizacjach i porządkujemy uprawnienia kont. Reagujemy przez całą dobę, bo zatrzymana sprzedaż nie czeka do poniedziałku. |