En vy representerar en virtuell tabell. Du kan slå samman flera tabeller i en vy och använda vyn för att presentera data som om data kom från en enda tabell.
En lagrad procedur använder parametrar för att utföra en funktion... oavsett om det är att uppdatera och infoga data, eller returnera enstaka värden eller datamängder.
Skapa vyer och lagrade procedurer - har lite information från Microsoft om när och varför de ska användas.
Säg att jag har två bord:
tbl_user
, med kolumner:user_id
,user_name
,user_pw
tbl_profile
, med kolumner:profile_id
,user_id
,profile_description
Så om jag kommer på mig själv med att fråga MYCKET från de tabellerna... istället för att göra joinen i VARJE SQL-bit, skulle jag definiera en vy som:
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
Alltså, om jag vill fråga profile_description
av user_id
i framtiden behöver jag bara:
SELECT profile_description FROM vw_user_profile WHERE user_id = @ID
Den koden kan användas i en lagrad procedur som:
CREATE PROCEDURE dbo.getDesc
@ID int
AS
BEGIN
SELECT profile_description FROM vw_user_profile WHERE user_id = @ID
END
GO
Så senare kan jag ringa:
dbo.getDesc 25
och jag får beskrivningen för user_id
25, där 25
är din parameter.
Det finns uppenbarligen mycket mer detaljer, detta är bara grundidén.