Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Co to jest procedura składowana?

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 to robią. Aby uzyskać szczegółowe informacje, musisz zweryfikować dokumentację pomocy konkretnego systemu DBMS. Ponieważ najbardziej znam SQL Server, użyję go jako moich próbek.

Składnia procedury składowanej 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 składowanych jest to, że można scentralizować logikę dostępu do danych w jednym miejscu, co jest łatwe do zoptymalizowania przez administratorów baz danych. Procedury składowane mają również tę zaletę w zakresie bezpieczeństwa, że ​​można przyznać prawa wykonywania procedurom składowanym, ale użytkownik nie musi mieć uprawnień do odczytu/zapisu w tabelach źródłowych. To dobry pierwszy krok przeciwko wstrzykiwaniu SQL.

Przechowywane procedury mają swoje wady, w zasadzie konserwację związaną z podstawową operacją CRUD. Powiedzmy, że dla każdej tabeli masz Wstaw, Aktualizuj, Usuń i co najmniej jeden wybór na podstawie klucza podstawowego, co oznacza, że ​​każda tabela będzie miała 4 procedury. Teraz weź przyzwoitą bazę danych z 400 tabelami i masz 1600 procedur! I to przy założeniu, ż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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oblicz różnicę czasu między dwoma rzędami

  2. Jak mogę zobaczyć aktywne połączenia SQL Server?

  3. SQL Server 2008 — Pobierz ograniczenia dotyczące tabel

  4. AT TIME ZONE – nowa ulubiona funkcja w SQL Server 2016

  5. Dynamiczne kolumny przestawne w SQL Server