Una vista representa un virtual mesa. Puede unir varias tablas en una vista y usar la vista para presentar los datos como si provinieran de una sola tabla.
Un procedimiento almacenado utiliza parámetros para realizar una función... ya sea actualizando e insertando datos, o devolviendo valores únicos o conjuntos de datos.
Creación de vistas y procedimientos almacenados - tiene información de Microsoft sobre cuándo y por qué usar cada uno.
Digamos que tengo dos tablas:
tbl_user
, con columnas:user_id
,user_name
,user_pw
tbl_profile
, con columnas:profile_id
,user_id
,profile_description
Entonces, si me encuentro consultando MUCHAS tablas desde esas tablas ... en lugar de unir CADA pieza de SQL, definiría una vista como:
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
Por lo tanto, si quiero consultar profile_description
por user_id
en el futuro, todo lo que tengo que hacer es:
SELECT profile_description FROM vw_user_profile WHERE user_id = @ID
Ese código podría usarse en un procedimiento almacenado como:
CREATE PROCEDURE dbo.getDesc
@ID int
AS
BEGIN
SELECT profile_description FROM vw_user_profile WHERE user_id = @ID
END
GO
Entonces, más tarde, puedo llamar:
dbo.getDesc 25
y obtendré la descripción de user_id
25, donde el 25
es su parámetro.
Obviamente hay muchos más detalles, esta es solo la idea básica.