534 Shares 4004 views

SQL przechowywane procedury: tworzenie i stosowanie

procedury SQL przechowywane są wykonywalny moduł oprogramowania, które mogą być przechowywane w bazie danych w postaci różnych obiektów. Innymi słowy, jest to obiekt, który zawiera instrukcja_sql. Te procedury przechowywane mogą być wykonywane w aplikacji klienckiej, aby uzyskać dobrą wydajność. Ponadto, takie urządzenia są często nazywane z innych skryptów lub nawet od jakiejkolwiek innej sekcji.

wprowadzenie

Wielu ludzi uważa, że są one podobne do procedur różnych językach programowania wysokiego poziomu (odpowiednio, z wyjątkiem MS SQL). Być może jest to prawda. Mają podobne parametry, mogą wydać podobną wartość. Ponadto, w niektórych przypadkach są one stykać. Na przykład, są one łączone z baz danych DDL i DML, a także funkcjami użytkownika (nazwa kodowa – UDF).

Faktycznie przechowywane procedury SQL mają szeroki wachlarz zalet, które wyróżniają je spośród takich procesów. Bezpieczeństwo, zmienność produktywność programowanie – to wszystko przyciąga użytkowników pracujących z bazami danych, więcej i więcej. Szczyt popularności przyszedł procedury w latach 2005-2010, kiedy mam program z „Microsoft” pod nazwą «SQL Server Management Studio». Przy jego pomocy, praca z bazami danych stało się znacznie łatwiejsze, bardziej praktyczne i wygodniejsze. Rok po roku, to metoda przekazywania informacji zyskał popularność w środowisku programowania. Dzisiaj, MS SQL Server jest absolutnie normalny program, który dla użytkowników „komunikować się” z bazami danych, stanął na równi z „Excel”.

Po wywołaniu procedury, to jest natychmiast przetwarzane przez serwer bez zbędnych procesów i interwencji ze strony użytkownika. Następnie można wykonywać żadnych operacji na danych: Usuwanie, wykonanie, zmiany. Ponad to wszystko jest w DDL-operatora, który w pojedynkę wykonywania skomplikowanych czynności na tych obiektach. I to wszystko dzieje się bardzo szybko, a serwer nie faktycznie załadowane. Ta szybkość i produktywność pozwalają szybko przenosić duże ilości danych od użytkownika do serwera i odwrotnie.

Aby wdrożyć tę pracę z informacjami, istnieje kilka języków programowania technologie. Należą do nich na przykład, PL / SQL z systemem zarządzania bazami danych Oracle, PSQL w InterBase i Firebird systemów, jak również klasyczne „maykrosoftovskih» Transact-SQL. Wszystkie z nich są przeznaczone do tworzenia i uruchamiania procedur przechowywanych, dzięki czemu można korzystać z własnych algorytmów na szeroką obsługą baz danych. Jest to konieczne, oraz upewnić się, że ci, którzy przeprowadzają zarządzanie takimi informacjami, można chronić wszystkie obiekty przed nieuprawnionymi osobami trzecimi, a zatem tworzenie, modyfikację lub usunięcie pewnych danych.

produktywność

Te obiekty bazy danych może być zaprogramowany na różne sposoby. Dzięki temu użytkownicy mogą wybrać rodzaj procesu, który byłby najbardziej odpowiedni, co pozwala zaoszczędzić czas i energię. Ponadto, sama procedura jest przetwarzany, unikając w ten sposób ogromny czas spędzony na komunikacji między serwerem a użytkownikiem. Moduł może być przeprogramowany i zmieniła się w odpowiednim kierunku w absolutnie dowolnym momencie. Szczególnie warto zwrócić uwagę na prędkość z jaką uruchomienie procedury składowanej SQL następuje: proces jest szybszy inne podobne do niego, dzięki czemu jest wygodny i wszechstronny.

bezpieczeństwo

Ten typ przetwarzania informacji różni się od podobnych procesów w to, że zapewnia większe bezpieczeństwo. Jest to zapewnione przez fakt, że inni użytkownicy z procedurami dostępu mogą być wyeliminowane całkowicie. Pozwoli to Administrator do przeprowadzania operacji z nich niezależnie, bez strachu przed przechwyceniem lub nieuprawnionego dostępu do bazy danych.

transfer danych

Komunikacja pomiędzy przechowywanej procedury SQL i aplikacji klienckiej jest użycie parametry i zwracane wartości. Ten ostatni nie jest konieczne, aby przesyłać dane do procedury przechowywanej, lecz informacje (głównie na żądanie użytkownika) i przetwarzane SQL. Procedura Po zapisaniu zakończył swoją pracę, wysyła pakiety danych z powrotem (ale, ponownie, w razie potrzeby) do aplikacji wywołującej za pomocą różnych metod, za pomocą których mogą być realizowane jako wezwanie do przechowywanej procedury SQL i powrotu, na przykład:

– transmisja danych poprzez typu parametr wyjściowy;

– transmisja danych za pomocą instrukcji return;

– transmisja danych poprzez selekcję.

A teraz zastanowić się, jak ten proces wygląda tak samo wnętrze.

1. Utwórz EXEC przechowywane w procedurze SQL

Można utworzyć procedurę w MS SQL (Managment Studio). Po utworzeniu procedur, jest ona wyświetlana na programowalnym węzła bazy danych, w którym wykonywany jest przez operatora tworzenia. Aby wykonać procedury przechowywane SQL za pomocą EXEC-proces, który zawiera nazwę obiektu.

Podczas tworzenia nazwa pochodzi pierwszy procedurę, a następnie popełnił jeden lub więcej parametrów, które są przypisane do niego. Parametry mogą być opcjonalne. Po parametru (ów), czyli ciała procedury, które mają być napisane, konieczne jest przeprowadzenie pewnych niezbędnych operacji.

Fakt, że ciało może mieć zmienne lokalne, znajdujące się w nim, a te zmienne są lokalne oraz w odniesieniu do procedur. Innymi słowy, można je uznać jedynie w ramach zabiegów pielęgnacyjnych Microsoft SQL Server. Procedury zawarte w tym przypadku są uważane za lokalne.

Dlatego, aby stworzyć proces, musimy nazwę procedura i co najmniej jeden parametr jako organu procedury. Należy pamiętać, że doskonałym rozwiązaniem w tym przypadku jest tworzenie i wdrażanie procedur z nazwą schematu w klasyfikatora.

Ciało procedura może mieć jakichkolwiek operatorów SQL, na przykład takich jak tworzenie tabeli, wkładając jeden lub więcej wierszy tabeli, tworząc typ bazy danych i charakter, i tak dalej. Niemniej jednak, organizm procedura ogranicza pewne operacje w nim. Niektóre z najważniejszych ograniczeń są wymienione poniżej:

– ciało nie tworzy żadnej innej procedury przechowywanej;

– organizm nie musi stworzyć fałszywe wrażenie co do obiektu;

– ciało nie tworzy żadnych wyzwalaczy.

2. Ustaw zmienną w ciele procedury

Można dokonać zmienne lokalne z procedurą określoną w organizmie, a następnie będą one w ciele procedury. Dobrą praktyką jest, aby utworzyć zmienną na początku ciała procedury przechowywanej. Ale można też ustawić zmienne w dowolnym miejscu ciała obiektu.

Czasami można zauważyć, że niektóre zmienne są ustawione w tym samym rzędzie, a każda zmienna oddzielone przecinkiem. Należy również pamiętać, że zmienna jest poprzedzona @. W organizmie procedury, można ustawić zmienną, do której chcesz. Na przykład, zmienna @ NAME1 może być ogłoszone pod koniec ciała procedury. Aby przypisać wartość do zmiennej zadeklarowanej przy użyciu zestawu danych osobowych. W przeciwieństwie do sytuacji, gdy więcej niż jedna zmienna zadeklarowanej w tym samym rzędzie, tylko jeden zestaw danych osobowych stosuje się w tej sytuacji.

Użytkownicy często zadają pytanie: „Jak przypisać wielu wartości w pojedynczej instrukcji w ciele procedury„No i co?. Ciekawe pytanie, ale jest to o wiele łatwiejsze niż myślisz. Odpowiedź: z pomocą takich parach jak «Wybierz zmienna = wartość”. Można korzystać z tych par, rozdzielając je przecinkami.

3. Tworzenie procedury przechowywane SQL

W różnorodnych przykładów ludzi, pokazać stworzenia prostej procedury przechowywanej i wykonanie go. Jednakże procedura może mieć takie parametry, że proces wywołujący będzie mieć wartość zbliżoną do niego (ale nie zawsze). Jeśli oni pasują do siebie, a następnie rozpoczyna się odpowiednie procesy w organizmie. Na przykład, jeśli utworzyć procedurę, która będzie miała na miasto i region z rozmówcą i zwracają dane o ile autorzy odnoszą się do odpowiedniego miasta i regionu. Procedura będzie kwerendy tabeli bazy danych autorów, na przykład, puby, do wykonywania tego obliczenia autorów. W celu uzyskania tych baz danych, na przykład Google pobiera skrypt SQL ze strony SQL2005.

W poprzednim przykładzie, procedura trwa dwa parametry, które w języku angielskim można nazwać warunkowo @State i @City. Typ danych odpowiada typu określonego we wniosku. Ciało procedura ma zmienne wewnętrzne @TotalAuthors (wszyscy autorzy), a zmienna ta służy do wyświetlania ich liczbę. Następnie przychodzi prośba wybór sekcję każdym względem. Wreszcie, obliczona wartość jest wyświetlana w oknie wyjściowym używając instrukcji print.

Jak wykonać procedurę SQL przechowywane

Istnieją dwa sposoby na wykonanie procedury. Pierwszy sposób jest przedstawiony przez przejście parametrów jako oddzielony przecinkami odbywa się po Nazwa procedury. Załóżmy, że mamy dwie wartości (jak w poprzednim przykładzie). Wartości te są pobierane za pomocą zmiennych i procedurę @State @City. W tym sposobie ważne parametry celu transmisji. Metoda ta nazywana jest sekwencja przekazywanie argumentów. W drugim sposobie, parametry są przypisane bezpośrednio, w tym przypadku tak nie jest ważne. Ta druga metoda jest znana jako przekazywania wymienionych argumentów.

Procedura ta może się nieco różnić od typowej. Wszystkie takie same, jak w poprzednim przykładzie, ale parametry są przesunięte tutaj tylko. Jest to parametr @City przechowywany jest pierwszy, a @State przechowywane obok wartości domyślnej. Domyślnym ustawieniem jest zazwyczaj przydzielane oddzielnie. procedur przechowywanych SQL są proste parametrów. W tym przypadku, pod warunkiem, że opcja „UT„zastępuje domyślną wartość”CA". W drugim przykładzie wykonania przechodzi tylko jedną wartość argumentu do @City i @State domyślne opcja „CA”. Doświadczeni programiści są poinformowani, że wszystkie zmienne domyślne znajdują się bliżej końca listy parametrów. W przeciwnym wypadku, wykonanie nie jest możliwe, to trzeba pracować z przeniesieniem nazwanych argumentów, że dłuższe i bardziej skomplikowane.

4. Procedury składowane SQL Server: sposoby powrocie

Istnieją trzy główne sposoby wysyłania danych przechowywanych w nazwie procedury. Są one wymienione poniżej:

– wartości powrotne procedura przechowywania;

– procedur przechowywanych parametr wyjściowy;

– Wybierz jedną z procedur przechowywanych.

4.1 wartości powrotu procedur SQL przechowywane

W ramach tej procedury, procedura ustawia wartość zmiennej lokalnej i zwraca go. Procedurę tę można także bezpośrednio powrót do wartości stałej. W poniższym przykładzie, stworzyliśmy procedury, która zwraca całkowitą liczbę sponsorów. Jeśli porównamy to z poprzedniej procedury, można zobaczyć, że wartość druku otrzymuje odwrocie.

Teraz przyjrzyjmy się, jak wykonać procedurę i wyświetlania wartości, zwraca go. wykonywania procedury wymagane do ustalenia i zmienny drukowania, które jest przeprowadzane po tym procesie. Zauważ, że zamiast drukować operator może użyć Select-Operator, na przykład wybrać @RetValue i OutputValue.

4,2 procedur przechowywanych wyjściowy parametr SQL

Wartość odpowiedź może być używany do powrotu pojedynczej zmiennej, które widzieliśmy w poprzednim przykładzie. Korzystanie z zasobnika umożliwia procedurę wysłać jedną lub więcej zmiennych do osoby dzwoniącej. Parametr wyjściowy jest oznaczony jako czas to kluczowe słowo «wyjście» przy tworzeniu procedury. Jeżeli parametr jest określony jako parametr wyjściowy, obiekt procedura musi przydzielić jej wartość. Procedur przechowywanych SQL, których przykłady można zaobserwować poniżej, w tym przypadku powracający do ostatecznej informacji.

W tym przykładzie będzie nazwa dwa weekendy: @TotalAuthors i @TotalNoContract. Są one wymienione w wykazie parametrów. Zmienne te są przypisane wartości w organizmie procedury. Gdy używamy parametrów wyjściowych, dzwoniący może zobaczyć wartość ustawioną w organizmie procedury.

Ponadto w poprzednim scenariuszu, dwie zmienne są deklarowane, aby zobaczyć wartości, które są zainstalowane procedur przechowywanych, MS SQL Server jako parametr wyjściowy. Potem procedura jest wykonywana poprzez zastosowanie wartości normalnej «CA» parametru. Następujące parametry są wyprowadzane, a zatem uznane zmienne są przekazywane w określony sposób. Należy pamiętać, że gdy zmienna kluczowe wyjście podano również tutaj. Po zakończeniu procedury pomyślnie, wartość zwracana za pomocą parametrów wyjściowych są wyświetlane w oknie wiadomości.

4.3 Wybór SQL przechowywane procedury

Technikę tę stosuje się do powrotu zestaw w formie tabeli wartości danych (RecordSet) do wywoływania procedury. W tym przykładzie SQL procedury przechowywanej z parametrami @AuthID żądać wykonania tabela „autorów” poprzez filtrowanie rekordów zwracanych przez ten parametr @AuthId. Wybierz operator decyduje, jakie powinny być zwrócone do wywoływania procedury przechowywanej. Gdy procedura przechowywana AUTHID przesyłane z powrotem. Taka procedura jest zawsze zwraca tylko jeden rekord lub wcale. Jednakże procedura przechowywana nie ma żadnych ograniczeń w zamian więcej niż jednego wpisu. Często przykłady można znaleźć w którym dane powrotne przy użyciu parametrów z obliczonymi zmiennych odbywa się poprzez dostarczanie wielu całkowitych wartości.

Konkludując

Procedura składowana jest dość poważny program zwrócone lub przeniesione, jak również ustanowienie niezbędnych zmiennych dzięki aplikacji klienckiej. Ponieważ procedura przechowywana jest wykonywany na samym serwerze, wymiana danych w dużych ilościach między serwerem a aplikacją kliencką (dla niektórych obliczeń) można uniknąć. Pozwala to zmniejszyć obciążenie serwera SQL, który, oczywiście, jest ręka ich posiadaczy. Jeden z podgatunków są procedury przechowywane T SQL, ale ich badanie jest potrzebne do osób zaangażowanych w tworzenie imponującej bazy danych. Istnieje również duża, nawet ogromna ilość niuansów, które mogą być użyteczne w badaniu procedur przechowywanych, jednak to konieczność dla tych, którzy planują zrobić szczelne programowania, w tym profesjonalnie.