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

Jaka jest różnica między procedurą składowaną a widokiem?

Widok reprezentuje wirtualny stół. Możesz łączyć wiele tabel w jednym widoku i używać widoku do prezentowania danych tak, jakby pochodziły z jednej tabeli.

Procedura składowana używa parametrów do wykonania funkcji... niezależnie od tego, czy aktualizuje i wstawia dane, czy zwraca pojedyncze wartości lub zestawy danych.

Tworzenie widoków i zapisanych procedur - posiada informacje od firmy Microsoft, kiedy i dlaczego ich używać.

Załóżmy, że mam dwa stoły:

  • tbl_user , z kolumnami:user_id , user_name , user_name
  • tbl_profile , z kolumnami:profile_id , user_id , profile_description

Tak więc, jeśli znajdę się w zapytaniach z tych tabel DUŻO... zamiast robić sprzężenie w KAŻDYM kawałku SQL, zdefiniowałbym widok taki jak:

CREATE VIEW vw_user_profile
AS
  SELECT A.user_id, B.profile_description
  FROM tbl_user A LEFT JOIN tbl_profile B ON A.user_id = b.user_id
GO

Tak więc, jeśli chcę zapytać o profile_description przez user_id w przyszłości wszystko, co muszę zrobić, to:

SELECT profile_description FROM vw_user_profile WHERE user_id = @ID

Ten kod może być użyty w procedurze składowanej, takiej jak:

CREATE PROCEDURE dbo.getDesc
    @ID int
AS
BEGIN
    SELECT profile_description FROM vw_user_profile WHERE user_id = @ID
END
GO

Więc później mogę zadzwonić:

dbo.getDesc 25

i otrzymam opis dla user_id 25, gdzie 25 jest twoim parametrem.

Oczywiście jest o wiele więcej szczegółów, to tylko podstawowa idea.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL:Użyj pól obliczeniowych z SELECT w klauzuli WHERE

  2. aktualizacja sql z dynamicznymi nazwami kolumn

  3. SQL wybierz gdzie nie w podzapytaniu nie zwraca żadnych wyników

  4. Utwórz zadanie agenta serwera SQL za pomocą programu SSMS

  5. SQL-Server ignoruje moje COLLATION, gdy używam operatora LIKE