Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 89 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
89
Dung lượng
2,74 MB
Nội dung
Trigger loại stored-proc đặc biệt, tự động thực thi kiện diễn sở liệu server Trigger định nghĩa bảng hay view cụ thể Trigger thường dùng cần đảm bảo tính tồn vẹn liệu phức tạp mà ràng buộc khác Check, Assertion khó đạt được, với vượt trội tính đắn cao Check linh hoạt nhiều Assertion DML Trigger : thực thi liệu bị thay đổi kiện DML thông qua câu lệnh TSQL INSERT, UPDATE, DELETE bảng hay view Thường sử dụng thực tiễn để thực quy định… › Ví dụ: Trigger xuất thơng báo có hóa đơn lập… DDL Trigger : thực thi có kiện DDL xảy sở liệu hay server, gây câu lệnh T-SQL CREATE, ALTER, DROP hay số stored-proc hệ thống Thường sử dụng thực tiễn để kiểm tra, quản lý thao tác phép lên đối tượng hệ thống › Ví dụ: Trigger ngăn khơng cho phép DROP table hệ thống… Logon Trigger : thực thi session user thiết lập, xác thực, gọi kiện LOGON › Ví dụ: Trigger giới hạn số session LoginID, lúc đăng nhập vào hệ thống Nếu vượt số này, đăng nhập sau bị từ chối… SQL Server thiết lập bảng tạm ảo lúc DML Trigger thực thi, Inserted Deleted Các bảng chứa dòng thêm vào (Inserted) bị xóa (Deleted) bảng trigger, lúc trigger khởi chạy Các bảng có cấu trúc bảng trigger Câu lệnh DML Bảng tạm ảo Inserted Bảng tạm ảo Deleted Insert Các dòng thêm vào Không tồn Update Dữ liệu cũ trước cập nhật Dữ liệu sau cập nhật Delete Khơng tồn Các dịng bị xóa Thực thi liệu bị thay đổi kiện DML thông qua câu lệnh T-SQL INSERT, UPDATE, DELETE bảng hay view Có thể gọi sau kiện hoàn tất thay kiện hành động khác Các trigger DML chạy có sử dụng bảng tạm ảo Inserted Deleted (đã đề cập) Tùy chọn WITH SCHEMABINDING Table – Valued Function (Hàm nội tuyến): Inline Function: Để biết có inline Function -> review số kiến thức View – khung nhìn View xem bảng ảo với liệu tạo tập hàng hay cột từ hay nhiều bảng khác Điểm khác biệt view bảng (table) view nhìn khơng xem cấu trúc lưu trữ liệu tồn sở liệu Nội dung view xác định thông qua câu lệnh SELECT với cú pháp sau: CREATE VIEW tên_khung_nhìn[(danh_sách_tên_cột)] AS câu_lệnh_SELECT View có ưu điểm: › Giảm độ phức tạp liệu -> dễ dàng thu liệu mong muốn › Cung cấp chế đảm bảo an toàn liệu › Truy xuất liệu nhanh, gọn so với bảng gốc -> hiệu thực thi Tuy nhiên, cần phải sử dụng tham số View (chẳng hạn tham số mệnh đề WHERE câu lệnh SELECT) ta lại khơng thể thực Điều phần làm giảm tính linh hoạt việc sử dụng View Ví dụ : Xét khung nhìn định nghĩa sau: Với khung nhìn trên, thơng qua câu lệnh: Ta biết thơng tin khách hàng KH1001 cách dễ dàng thông qua khung nhìn để biết danh sách khách hàng khác khơng thể sử dụng điều kiện có dạng MaKH = @thamso mệnh đề WHERE câu lệnh SELECT Nhược điểm khung nhìn khắc phục cách sử dụng hàm với giá trị trả dạng bảng gọi hàm nội tuyến (inline function) Việc sử dụng hàm loại cung cấp khả khung nhìn cho phép sử dụng tham số nhờ tính linh hoạt cao › Cú pháp: CREATE FUNCTION [tên_người_sở_hữu] tên_function ([danh_sách_tham_số]) RETURNS TABLE [WITH SCHEMABINDING|ENCRYPTION, SCHEMABINDING, ENCRYPTION] AS RETURN (câu_lệnh_select) Cú pháp hàm phải tuân theo qui tắc sau: › Kiểu trả hàm phải định mệnh đề RETURNS TABLE › Trong phần thân hàm có câu lệnh RETURN xác định giá trị trả hàm thông qua câu lệnh SELECT Ngồi ra, khơng sử dụng câu lệnh khác phần thân hàm › Thực thi: Do không trả giá trị kiểu liệu Scalar Function mà thay vào liệu dạng bảng nên Table – Valued Function (cả Inline multi-statement function) thực thi theo cú pháp sau: SELECT * FROM tên_hàm (giá_trị_tham_số_truyền cho hàm) Ví dụ : Table – Value Function (Hàm nội tuyến)(tt): Multi-stament function: CREATE FUNCTION [tên_người_sở_hữu] tên_function ([danh_sách_tham_số]) RETURNS @biến_bảng TABLE ( cột_1 kiểu_dữ _liệu [loại_ràng buộc] cột_2 kiểu_dữ _liệu [loại_ràng buộc] ) [WITH SCHEMABINDING |ENCRYPTION | WITH SCHEMABINDING,ENCRYPTION ] AS BEGIN các_câu_lệnh_trong_thân_hàm RETURN END Khi định nghĩa multi-statement function cần lưu ý số điểm sau: Cấu trúc bảng trả hàm xác định dựa vào định nghĩa bảng mệnh đề RETURNS Biến @biến_bảng mệnh đề RETURNS có phạm vi sử dụng hàm sử dụng tên bảng Câu lệnh RETURN thân hàm không định giá trị trả Giá trị trả hàm dịng liệu bảng có tên @biếnbảng định nghĩa mệnh đề RETURNS loại_ràng_buộc: hỗ trợ PRIMARY KEY, UNIQUE, NULL CHECK Ví dụ : Ta định nghĩa hàm func_TongsoSAmua sau: Thay đổi xoá bỏ Function: Tương tự Stored Proced: › Thay đổi Function – ALTER ALTER FUNCTION tên_function (danh_sách_tham_số) … // nội dung thân hàm tuỳ thuộc loại function › Thay đổi Function - DROP DROP FUNCTION tên_function THẢO LUẬN ... kiện DDL xảy sở liệu hay server, gây câu lệnh T-SQL CREATE, ALTER, DROP hay số stored-proc hệ thống Thường sử dụng thực tiễn để kiểm tra, quản lý thao tác phép lên đối tượng hệ thống › Ví dụ:... tạo CREATE TRIGGER Cú pháp: Cursor thành phần sở liệu (CSDL) sử dụng để truy xuất liệu theo hàng Với cursor, ta chọn record tập hợp dòng liệu cách di chuyển vị trí cursor bảng Nếu giải thích... KH1007 có tiền nợ : Thực thi liệu bị thay đổi kiện DDL thông qua câu lệnh T-SQL CREATE, ALTER, DROP, GRANT, DENY, REVOKE, hay UPDATE STATISTICS sở liệu hay tồn hệ thống, khơng phụ thuộc schema