Udostępnij za pośrednictwem


Podstawowe informacje o procedurze przechowywanej

Stored procedures in Microsoft SQL Server are similar to procedures in other programming languages in that they can:

  • Akceptuje parametry wejściowe i zwracać wiele wartości w formularzu Parametry wyjściowe wywołania procedury lub partia.

  • Zawiera instrukcje programowania, które wykonuje operacje w bazie danych, włącznie z wywołaniem innych procedur.

  • Zwraca wartość stanu do wywołania procedury lub programu wsadowego oznacza sukces lub Niepowodzenie (i przyczynach niepowodzenia).

Można użyć Transact-SQL Instrukcja wykonać do uruchomienia procedura przechowywana. Procedury przechowywane różnią się od funkcji zwracały wartości zamiast ich nazw i nie można ich używać bezpośrednio w wyrażeniu.

Korzyści wynikające z używania procedur przechowywanych w SQL Server zamiast Transact-SQL programy przechowywane lokalnie na komputerach klienckich są:

  • Są one rejestrowane na serwerze.

  • Mogą one mieć atrybutów zabezpieczeń (takie jak uprawnienia) i tworzenie łańcucha własności i certyfikaty mogą być dołączane do nich.

    Użytkownikom można udzielić uprawnienia do wykonać procedura przechowywana, bez konieczności bezpośredniego uprawnień dla obiektów, do którego odwołuje się procedura.

  • Mogą one zwiększenia bezpieczeństwa aplikacji.

    Sparametryzowana procedury przechowywane mogą pomóc w zabezpieczeniu aplikacji przed atakami iniekcją SQL.Aby uzyskać więcej informacji, zobacz Iniekcją SQL.

  • Umożliwiają one modułowych programowania.

    Raz utworzyć procedurę i wywoływać na dowolną liczbę razy w programie.Może to poprawić łatwość konserwacji aplikacji i umożliwiają aplikacjom dostęp do bazy danych w jednolity sposób.

  • Są one nazywane kodu, co pozwala na wiązanie opóźnione.

    Zapewnia to poziom indirection dla rozwoju łatwe kodu.

  • Mogą one zmniejszyć ruch w sieci.

    Operacje wymagające setki wierszy Transact-SQL Kod można przeprowadzić przy użyciu pojedynczej instrukcja, która wykonuje kod w procedurze, a nie wysyłając setki wiersze kodu za pośrednictwem sieci.