VIEW trong SQL Server là gì?
Về cơ bản, VIEW là một bảng ảo không thực sự tồn tại trong SQL Server. Nó được tạo ra bởi truy vấn kết hợp 1 hoặc nhiều bảng.
Tạo VIEW trong SQL Server
Cú pháp
CREATE VIEW[ten_schema.]ten_view AS[WITH { ENCRYPTION | SCHEMABINDING | VIEW_METADATA}SELECT bieu_thucFROM bang[WHERE dieu_kien];
ten_schema
Đây là tên của schema (tạm dịch là lược đồ hay không gian tên) mà bảng đó thuộc về.
ten_view
Tên của VIEW muốn tạo.
ENCRYPTION
Mã hóa văn bản của lệnh ALTER VIEW trong sys.syscomments.
SCHEMABINDING
Đảm bảo các định nghĩa bảng không bị chỉnh sửa để không ảnh hưởng tới VIEW.
VIEW_METADATA
Đảm bảo SQL Server có siêu dữ liệu (metadata) của VIEW.
bieu_thuc
Cột hoặc giá trị tính toán muốn thêm vào VIEW.
bang
Bảng định nghĩa VIEW. Phải có ít nhất 1 bảng trong mệnh đề FROM.
WHERE dieu_kien
Tùy chọn. Điều kiện phải đáp ứng để bản ghi được hiển thị trong VIEW.
Ví dụ
CREATE VIEW sp_htk ASSELECT sanpham.id_sanpham, sanpham.ten_sanpham, hangtonkho.chatluongFROM sanphamINNER JOIN hangtonkhoON sanpham.id_sanpham = hangtonkho.id_sanphamWHERE sanpham.id_sanpham >= 1000;
Lệnh CREATE VIEW nói trên sẽ tạo một bảng ảo dựa trên bộ kết quả của lệnh SELECT. VIEW này sẽ có tên sp_htk.
Giờ bạn có thể truy vấn VIEW như dưới đây.
SELECT *FROM sp_htk;
Cập nhật VIEW
Bạn có thể chỉnh sửa VIEW trong SQL Server mà không cần xóa đi tạo mới bằng lệnh ALTER VIEW.
Cú pháp
ALTER VIEW [ten_schema.] ten_view AS[WITH {ENCRYPTION | SCHEMABINDING | VIEW_METADATA}SELECT bieu_thucFROM bangWHERE dieu_kien;
Ví dụ
ALTER VIEWsp_htk ASSELECT sanpham.ten_sanpham, hangtonkho.soluongFROM sanphamINNER JOIN hangtonkhoON sanpham.id_sanpham = hangtonkho.id_sanphamWHERE sanpham.id_sanpham >= 500AND sanpham.id_sanpham <= 1000;
Ví dụ lệnh ALTER VIEW trên đây sẽ cập nhật VIEW có tên sp_htk mà không phải xóa đi. VIEW cần phải tồn tại trước đó thì mới thực hiện lệnh cập nhật được.
Xóa VIEW
Cú pháp
DROP VIEW ten_view;
ten_view
Tên của VIEW muốn xóa.
Ví dụ
DROP VIEW sp_htk;
Lệnh DROP VIEW này sẽ xóa VIEW có tên sp_htk trong SQL Server.

4 Th1 2021
4 Th1 2021
15 Th12 2020
4 Th1 2021
25 Th12 2020
25 Th12 2020