Uma visualização representa um virtual tabela. Você pode unir várias tabelas em uma exibição e usar a exibição para apresentar os dados como se os dados fossem provenientes de uma única tabela.
Um procedimento armazenado usa parâmetros para fazer uma função... seja atualizando e inserindo dados ou retornando valores únicos ou conjuntos de dados.
Criando exibições e procedimentos armazenados - tem algumas informações da Microsoft sobre quando e por que usar cada um.
Digamos que eu tenha duas tabelas:
tbl_user
, com colunas:user_id
,user_name
,user_pw
tbl_profile
, com colunas:profile_id
,user_id
,profile_description
Então, se eu me encontrar consultando muito essas tabelas ... em vez de fazer a junção em TODAS as partes do SQL, eu definiria uma visão 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
Assim, se eu quiser consultar
profile_description
por user_id
no futuro, tudo o que tenho a fazer é:SELECT profile_description FROM vw_user_profile WHERE user_id = @ID
Esse código pode ser usado em um procedimento armazenado como:
CREATE PROCEDURE dbo.getDesc
@ID int
AS
BEGIN
SELECT profile_description FROM vw_user_profile WHERE user_id = @ID
END
GO
Então, mais tarde, eu posso chamar:
dbo.getDesc 25
e obterei a descrição de
user_id
25, onde o 25
é o seu parâmetro. Obviamente, há muito mais detalhes, essa é apenas a ideia básica.