Una vista rappresenta un virtuale tavolo. Puoi unire più tabelle in una vista e utilizzare la vista per presentare i dati come se provenissero da un'unica tabella.
Una procedura memorizzata utilizza i parametri per eseguire una funzione... che si tratti di aggiornare e inserire dati o restituire valori singoli o set di dati.
Creazione di viste e stored procedure - ha alcune informazioni da Microsoft su quando e perché usarle.
Supponiamo di avere due tabelle:
tbl_user
, con colonne:user_id
,user_name
,user_pw
tbl_profile
, con colonne:profile_id
,user_id
,profile_description
Quindi, se mi ritrovo a interrogare MOLTO quelle tabelle... invece di fare il join in OGNI pezzo di SQL, definirei una vista come:
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
Quindi, se voglio interrogare profile_description
da user_id
in futuro, tutto ciò che devo fare è:
SELECT profile_description FROM vw_user_profile WHERE user_id = @ID
Quel codice potrebbe essere utilizzato in una procedura memorizzata come:
CREATE PROCEDURE dbo.getDesc
@ID int
AS
BEGIN
SELECT profile_description FROM vw_user_profile WHERE user_id = @ID
END
GO
Quindi, in seguito, posso chiamare:
dbo.getDesc 25
e otterrò la descrizione per user_id
25, dove il 25
è il tuo parametro.
Ovviamente ci sono molti più dettagli, questa è solo l'idea di base.