sql >> Databáze >  >> RDS >> Sqlserver

Jaký je rozdíl mezi uloženou procedurou a pohledem?

Pohled představuje virtuální stůl. Do zobrazení můžete spojit více tabulek a použít zobrazení k prezentaci dat, jako by data pocházela z jedné tabulky.

Uložená procedura používá parametry k provedení funkce... ať už se jedná o aktualizaci a vkládání dat nebo vrácení jednotlivých hodnot nebo sad dat.

Vytváření pohledů a uložených procedur - má od společnosti Microsoft nějaké informace o tom, kdy a proč je použít.

Řekněme, že mám dvě tabulky:

  • tbl_user , se sloupci:user_id , user_name , user_pw
  • tbl_profile , se sloupci:profile_id , user_id , profile_description

Takže, pokud zjistím, že se HODNĚ dotazuji z těchto tabulek... místo toho, abych provedl spojení v KAŽDÉM kousku SQL, definoval bych pohled jako:

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

Pokud tedy chci dotaz na profile_description podle user_id v budoucnu vše, co musím udělat, je:

SELECT profile_description FROM vw_user_profile WHERE user_id = @ID

Tento kód lze použít v uložené proceduře jako:

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

Takže později můžu zavolat:

dbo.getDesc 25

a dostanu popis pro user_id 25, kde 25 je váš parametr.

Je zde samozřejmě mnohem více detailů, toto je pouze základní myšlenka.



  1. Připojení SQuirreL SQL k Microsoft Excel

  2. Jaký je rozdíl mezi CHAR a VARCHAR v SQL Server - SQL Server / T-SQL výukový program, část 31

  3. Jak mohu VYBRAT více sloupců v CASE WHEN na SQL Server?

  4. Jaký je rozdíl mezi CLOB a NCLOB?