Co to jest „procedura przechowywana” i jak działają?
Jaki jest skład procedury przechowywanej (każda z nich musi być procedurą przechowywaną)?
Co to jest „procedura przechowywana” i jak działają?
Jaki jest skład procedury przechowywanej (każda z nich musi być procedurą przechowywaną)?
Procedury składowane to zestaw instrukcji SQL, które można wykonać na kilka sposobów. Większość głównych DBM obsługuje procedury składowane; jednak nie wszyscy tak robią. Konieczne będzie sprawdzenie za pomocą konkretnej dokumentacji pomocy DBMS w celu uzyskania szczegółowych informacji. Ponieważ jestem najbardziej zaznajomiony z programem SQL Server, użyję go jako moich próbek.
Aby utworzyć procedurę przechowywaną, składnia jest dość prosta:
CREATE PROCEDURE <owner>.<procedure name>
<Param> <datatype>
AS
<Body>
Na przykład:
CREATE PROCEDURE Users_GetUserInfo
@login nvarchar(30)=null
AS
SELECT * from [Users]
WHERE ISNULL(@login,login)=login
Zaletą procedur przechowywanych jest to, że można scentralizować logikę dostępu do danych w jednym miejscu, które jest następnie łatwe do zoptymalizowania przez DBA. Procedury składowane mają również tę zaletę bezpieczeństwa, że można przyznać uprawnienia do wykonywania procedury przechowywanej, ale użytkownik nie będzie musiał mieć uprawnień do odczytu / zapisu w bazowych tabelach. To dobry pierwszy krok przeciwko iniekcji SQL.
Przechowywane procedury mają swoje wady, w zasadzie konserwację związaną z podstawową obsługą CRUD . Powiedzmy, że dla każdej tabeli masz Wstaw, Aktualizuj, Usuń i przynajmniej jeden wybór na podstawie klucza podstawowego, co oznacza, że każda tabela będzie miała 4 procedury. Teraz weź porządną bazę danych zawierającą 400 tabel i masz 1600 procedur! Zakładając, że nie masz duplikatów, które prawdopodobnie będziesz mieć.
W tym przypadku użycie ORM lub innej metody automatycznego generowania podstawowych operacji CRUD ma mnóstwo zalet.
ORM
lubiszEntity Framework
wykonywaćCRUD
operacje?Procedura składowana to zestaw wstępnie skompilowanych instrukcji SQL służących do wykonania specjalnego zadania.
Przykład: jeśli mam
Employee
stolikNajpierw odzyskuję
Employee
tabelę:Aby uruchomić procedurę na serwerze SQL:
Następnie wstawiam wartość do tabeli pracowników
Aby uruchomić sparametryzowaną procedurę na serwerze SQL:
Przykład:
@Name Varchar(30)
W
Employee
tabeliName
rozmiar kolumny musi wynosićvarchar(30)
.źródło
Procedura składowana to grupa instrukcji SQL, która została utworzona i zapisana w bazie danych. Procedura składowana akceptuje parametry wejściowe, dzięki czemu pojedyncza procedura może być używana w sieci przez kilku klientów korzystających z różnych danych wejściowych. Procedury składowane zmniejszą ruch w sieci i zwiększą wydajność. Jeśli zmodyfikujemy procedurę przechowywaną, wszyscy klienci otrzymają zaktualizowaną procedurę przechowywaną.
Przykład tworzenia procedury składowanej
Zalety korzystania z procedur przechowywanych
Procedura składowana umożliwia programowanie modułowe.
Możesz utworzyć procedurę raz, zapisać ją w bazie danych i wywołać dowolną liczbę razy w swoim programie.
Procedura przechowywana umożliwia szybsze wykonanie.
Jeśli operacja wymaga dużej ilości kodu SQL, który jest wykonywany powtarzalnie, procedury składowane mogą być szybsze. Są one parsowane i optymalizowane przy pierwszym uruchomieniu, a skompilowana wersja procedury przechowywanej pozostaje w pamięci podręcznej pamięci do późniejszego wykorzystania. Oznacza to, że procedura składowana nie musi być ponownie analizowana i ponownie optymalizowana przy każdym użyciu, co skutkuje znacznie szybszym czasem wykonania.
Procedura przechowywana może zmniejszyć ruch w sieci.
Operację wymagającą setek wierszy kodu Transact-SQL można wykonać za pomocą pojedynczej instrukcji, która wykonuje kod w procedurze, zamiast wysyłać setki wierszy kodu przez sieć.
Procedury przechowywane zapewniają lepsze bezpieczeństwo danych
Użytkownikom można przyznać uprawnienia do wykonania procedury składowanej, nawet jeśli nie mają uprawnień do bezpośredniego wykonywania instrukcji procedury.
W SQL Server mamy różne rodzaje procedur przechowywanych:
System -stored procedury są przechowywane w bazie danych master, a te zaczynają z
sp_
prefiksem. Tych procedur można używać do wykonywania różnych zadań w celu obsługi funkcji SQL Server dla zewnętrznych wywołań aplikacji w tabelach systemowychPrzykład: sp_helptext [StoredProcedure_Name]
Procedury składowane zdefiniowane przez użytkownika są zwykle przechowywane w bazie danych użytkowników i zwykle są zaprojektowane do wykonywania zadań w bazie danych użytkowników. Podczas kodowania procedury te nie korzystają z
sp_
prefiksu bo jeśli używamysp_
przedrostka najpierw sprawdzi bazę danych master, a następnie dochodzi do bazy danych zdefiniowane przez użytkownika.Rozszerzone procedury składowane to procedury wywołujące funkcje z plików DLL. Obecnie rozszerzone procedury przechowywane są przestarzałe z tego powodu, że lepiej byłoby unikać używania rozszerzonych procedur przechowywanych.
źródło
Zasadniczo procedura przechowywana to „funkcja SQL”. Oni mają:
To jest przykład skoncentrowany na języku T-SQL. Procedury przechowywane mogą wykonywać większość instrukcji SQL, zwracać wartości skalarne i tabelowe i są uważane za bardziej bezpieczne, ponieważ zapobiegają atakom iniekcyjnym SQL.
źródło
Pomyśl o takiej sytuacji,
UWAGA:
źródło
Procedura przechowywana służy głównie do wykonywania niektórych zadań w bazie danych. Na przykład
źródło
Procedura składowana to nic innego jak grupa instrukcji SQL skompilowanych w jeden plan wykonania.
Przykład: tworzenie procedury składowanej
Zmień lub zmodyfikuj procedurę przechowywaną:
Upuść lub usuń procedurę przechowywaną:
źródło
Procedura przechowywana służy do pobierania danych, modyfikowania danych i usuwania danych w tabeli bazy danych. Nie musisz pisać całej komendy SQL za każdym razem, gdy chcesz wstawiać, aktualizować lub usuwać dane w bazie danych SQL.
źródło
Procedura składowana to wstępnie skompilowany zestaw jednej lub więcej instrukcji SQL, które wykonują określone zadanie.
Procedura przechowywana powinna być wykonywana autonomicznie przy użyciu
EXEC
Procedura składowana może zwrócić wiele parametrów
Procedurę składowaną można zastosować do realizacji transakcji
źródło
Odpowiedź „Co to jest procedura składowana” została już zamieszczona w innych postach tutaj. To, co opublikuję, to mniej znany sposób korzystania z procedury składowanej. To jest
grouping stored procedures
lubnumbering stored procedures
.Odwołanie do składni
; number
zgodnie z tymPrzykład
Posługiwać się
Wynik
Kolejna próba
Wynik
Referencje :
UWAGA
źródło
Procedura składowana to nazwany zbiór instrukcji SQL i logiki proceduralnej, tj. Skompilowany, zweryfikowany i zapisany w bazie danych serwera. Procedura przechowywana jest zwykle traktowana jak inne obiekty bazy danych i kontrolowana przez mechanizm bezpieczeństwa serwera.
źródło
W DBMS procedura składowana to zestaw instrukcji SQL o przypisanej nazwie, który jest przechowywany w bazie danych w skompilowanej formie, dzięki czemu może być współdzielony przez wiele programów.
Zastosowanie procedury składowanej może być pomocne w
Zapewnienie kontrolowanego dostępu do danych (użytkownicy końcowi mogą tylko wprowadzać lub zmieniać dane, ale nie mogą pisać procedur)
Zapewnienie integralności danych (dane byłyby wprowadzane w spójny sposób) oraz
Poprawia produktywność (instrukcje procedury składowanej należy zapisać tylko raz)
źródło
dla prostych
Procedura składowana to przechowywane programy , program / funkcja przechowywane w bazie danych.
Każdy przechowywany program zawiera treść składającą się z instrukcji SQL. Ta instrukcja może być złożoną instrukcją złożoną z kilku instrukcji oddzielonych średnikami (;).
źródło
Procedury przechowywane w SQL Server mogą akceptować parametry wejściowe i zwracać wiele wartości parametrów wyjściowych; w SQL Server: instrukcje programu procedur przechowywanych do wykonywania operacji w bazie danych i zwracania wartości statusu do procedury wywołującej lub partii.
Korzyści z używania procedur przechowywanych w SQL Server
Umożliwiają programowanie modułowe. Pozwalają na szybsze wykonanie. Mogą zmniejszyć ruch w sieci. Mogą być używane jako mechanizm bezpieczeństwa.
Oto przykład procedury składowanej, która pobiera parametr, wykonuje zapytanie i zwraca wynik. W szczególności procedura przechowywana akceptuje identyfikator BusinessEntityID jako parametr i używa go do dopasowania klucza podstawowego tabeli HumanResources.Employee w celu zwrócenia żądanego pracownika.
Nauczyłem się tego od essential.com ... jest to bardzo przydatne.
źródło
Procedura składowana pomoże ci stworzyć kod na serwerze. Możesz przekazać parametry i znaleźć dane wyjściowe.
źródło
W procedurach przechowywanych instrukcje są zapisywane tylko raz, co zmniejsza ruch w sieci między klientami a serwerami. Możemy także uniknąć ataków typu Injection Sql.
źródło