sql >> Database >  >> RDS >> Sqlserver

Wat is het verschil tussen een opgeslagen procedure en een weergave?

Een weergave vertegenwoordigt een virtuele tafel. U kunt meerdere tabellen in een weergave samenvoegen en de weergave gebruiken om de gegevens te presenteren alsof de gegevens uit één enkele tabel komen.

Een opgeslagen procedure gebruikt parameters om een ​​functie uit te voeren... of het nu gaat om het bijwerken en invoegen van gegevens, of het retourneren van enkele waarden of gegevenssets.

Weergaven en opgeslagen procedures maken - heeft wat informatie van Microsoft over wanneer en waarom ze elk moeten gebruiken.

Stel dat ik twee tafels heb:

  • tbl_user , met kolommen:user_id , user_name , user_pw
  • tbl_profile , met kolommen:profile_id , user_id , profile_description

Dus als ik merk dat ik VEEL uit die tabellen zoek... in plaats van de join in ELK stukje SQL te doen, zou ik een weergave definiëren als:

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

Dus als ik profile_description wil bevragen door user_id in de toekomst hoef ik alleen maar:

SELECT profile_description FROM vw_user_profile WHERE user_id = @ID

Die code kan worden gebruikt in een opgeslagen procedure zoals:

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

Dus later kan ik bellen:

dbo.getDesc 25

en ik krijg de beschrijving voor user_id 25, waar de 25 is uw parameter.

Er is duidelijk veel meer detail, dit is slechts het basisidee.



  1. Een tabel maken in MySQL Workbench met behulp van de GUI

  2. Hoe records van de afgelopen 24 uur te selecteren met PostgreSQL

  3. Beste manier om gebruikersinstellingen op te slaan in MySQL?

  4. Vraag om het aantal parameters te vinden in een opgeslagen procedure of functie in SQL Server?