Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Каква е разликата между съхранена процедура и изглед?

Изгледът представлявавиртуален маса. Можете да обедините множество таблици в изглед и да използвате изгледа, за да представите данните така, сякаш данните идват от една таблица.

Съхранената процедура използва параметри, за да изпълни функция... независимо дали актуализира и вмъква данни или връща единични стойности или набори от данни.

Създаване на изгледи и съхранени процедури - има известна информация от Microsoft кога и защо да се използва всеки.

Да кажем, че имам две маси:

  • tbl_user , с колони:user_id , user_name , user_pw
  • tbl_profile , с колони:profile_id , user_id , profile_description

Така че, ако установя, че правя заявки от тези таблици МНОГО... вместо да правя свързване във ВСЯКА част от SQL, бих дефинирал изглед като:

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

По този начин, ако искам да направя заявка profile_description от user_id в бъдеще всичко, което трябва да направя е:

SELECT profile_description FROM vw_user_profile WHERE user_id = @ID

Този код може да се използва в съхранена процедура като:

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

Така че по-късно мога да се обадя на:

dbo.getDesc 25

и ще получа описанието за user_id 25, където 25 е вашият параметър.

Очевидно има много повече подробности, това е само основната идея.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проблем с едновременната транзакция на SQL Server

  2. Как да генерирате скрипт за създаване на таблица с помощта на SQL заявка в SQL Server

  3. Вмъкване от една таблица в множество таблици при нормализиране на базата данни

  4. Count (Distinct ([стойност)) OVER (Partition by) в SQL Server 2008

  5. Кой е най-добрият начин за криптиране на SSN в SQL Server 2008?