Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Sự khác biệt giữa một thủ tục được lưu trữ và một dạng xem là gì?

Một chế độ xem đại diện cho một ảo bàn. Bạn có thể kết hợp nhiều bảng trong một chế độ xem và sử dụng chế độ xem để trình bày dữ liệu như thể dữ liệu đến từ một bảng duy nhất.

Thủ tục được lưu trữ sử dụng các tham số để thực hiện một chức năng ... cho dù đó là cập nhật và chèn dữ liệu hay trả về các giá trị hoặc tập dữ liệu đơn lẻ.

Tạo Chế độ xem và Thủ tục được Lưu trữ - có một số thông tin từ Microsoft về thời gian và lý do sử dụng từng thứ.

Giả sử tôi có hai bảng:

  • tbl_user , với các cột:user_id , user_name , user_pw
  • tbl_profile , với các cột:profile_id , user_id , profile_description

Vì vậy, nếu tôi thấy mình đang truy vấn từ các bảng đó RẤT NHIỀU ... thay vì thực hiện phép nối trong MỌI mẩu SQL, tôi sẽ xác định một dạng xem như:

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

Do đó, nếu tôi muốn truy vấn profile_description bởi user_id trong tương lai, tất cả những gì tôi phải làm là:

SELECT profile_description FROM vw_user_profile WHERE user_id = @ID

Mã đó có thể được sử dụng trong một quy trình được lưu trữ như:

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

Vì vậy, sau này, tôi có thể gọi:

dbo.getDesc 25

và tôi sẽ lấy mô tả cho user_id 25, trong đó 25 là thông số của bạn.

Rõ ràng là có nhiều chi tiết hơn, đây chỉ là ý tưởng cơ bản.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Định cấu hình SQL Server Luôn BẬT Nhóm khả dụng giữa hai bản sao đồng bộ. Phần 2

  2. Hiển thị mối quan hệ Cha-Con khi Cha và Con được lưu trữ trong cùng một bảng

  3. Làm thế nào để nhóm các hàng có cùng giá trị trong sql?

  4. Cách tạo khóa chính tổng hợp trong SQL Server 2008

  5. Truy vấn hết thời gian chờ khi được thực thi từ web, nhưng cực nhanh khi được thực thi từ SSMS