Funkcje: Funkcje tablicowe w SQL cz. III

Funkcje tablicowe definiowane przez programistę charakteryzują się między innymi tym, że zwracają one określone dane (na przykład tabelę) i głównie wykorzystywane są w zwykłych kwerendach po klauzuli FROM. Można więc z nich korzystać bardzo podobnie jak z widoków. Funkcje tablicowe to pewnego rodzaju procedury składowane, które działają mniej więcej na tych samych zasadach.

internet-594148_1920

Pisząc funkcje tablicowe w SQL nie definiujemy boku BEGIN - END, a jedyne co musimy zrobić to napisać zapytanie i zwrócić odpowiednie dane. Oczywiście mogą to być informacje odpowiednio spersonalizowane na podstawie odczytanych jako argumenty pewnych danych.

UWAGA: Omawiany materiał działa na bazach danych firmy Microsoft.

Tabela pracownicy, na której uruchomimy przykładowe zapytanie:

ID Imie Nazwisko Data_urodzenia Stanowisko Data_zatrudnienia
1 Jan Kowalski 1984-12-23 Programista 1999-12-09
2 Adam Adamiak 1991-08-08 Menadżer 2011-01-31
3 Jakub Kowalik 1990-03-16 Programista 2010-01-04
4 Michał Jakubiak 1981-05-02 Projektant 1998-09-22

Przykład

No to tyle z teorii, czas zabrać się za praktykę. Napiszmy więc funkcję tablicową, która na podstawie przekazanego jako argument nazwy stanowiska zwróci nam tabelę z pracownikami zajmującymi dane stanowisko.

Po uruchomieniu tego zapytania dostaniemy informację, że funkcja została zapisana na serwerze. Aby z niej skorzystać należy uruchomić poniższy kod:

Rezultat:

imie nazwisko
Jan Kowalski
Jakub Kowalik

O tym jak skasować stworzoną wyżej funkcję, możecie przeczytać w poprzedniej części tego artykułu: Funkcje: Tworzenie funkcji – funkcje skalarne w SQL cz. II.

Modyfikacja funkcji

Przypuśćmy, że nasza funkcja zapisana na serwerze SQL zawiera błąd. Co więc w takiej sytuacji zrobić? Możemy ją oczywiście skasować i napisać od nowa, ale jeśli nie mamy jej kodu? W Microsoft SQL Management Studio aby dostać się do zapisanych funkcji wystarczy wykonać następujące kroki:

  1. Przechodzimy do bocznego okna o nazwie „Object Explorer” następnie z rozwijanej listy wybieramy „Databases”, odszukujemy nazwę naszej bazy danych w moim przypadku jest to „kurs”, następnie folder „Programmability”, folder „Functions”, folder „Table-valued Functions” (tutaj przechowywane są właśnie funkcje tablicowe) oraz odnajdujemy na liście naszą funkcję.
  2. Klikamy prawym przyciskiem myszy na nazwie funkcji, którą chcemy zmodyfikować i z menu kontekstowego wybieramy opcję „Modify”:

    modykikowanie-funkcji

  3. Po wykonaniu powyższych czynności otworzy nam się kod funkcji, który możemy dowolnie zmodyfikować, a po zakończeniu prac wystarczy po prostu wcisnąć przycisk „Execute”:

    modykikowanie-funkcji-2

  4. Funkcja została zmodyfikowana.

, , , , ,