1. Trang chủ
  2. » Công Nghệ Thông Tin

Quản Lý Dữ Liệu - Cơ Sở Dữ Liệu phần 4

12 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 233,44 KB

Nội dung

Tham khảo tài liệu ''quản lý dữ liệu - cơ sở dữ liệu phần 4'', công nghệ thông tin, cơ sở dữ liệu phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Bài giảng tóm tắt Hệ quản trị sở liệu 35 − Khi gọi hàm loại (trả giá trị bản), phải có tên owner hàm kèm (ví dụ dbo.SoLonNhat(5,8,-10)) Thay đổi hàm người dùng Thay từ khóa create lệnh tạo hàm từ khóa alter Xóa hàm người dùng Drop function tên_hàm_cần _xóa Ví dụ: Drop function DanhSachMatHang Các hàm hệ thống Ngoài hàm người dùng định nghĩa, SQL Server cung cấp hàm xây dựng sẵn hệ thống Các hàm cung cấp tiện ích xử lý chuỗi, xử lý thời gian, xử lý số học… Sinh viên tìm hiểu thêm hàm Books on-line tài liệu tham khảo • Để tạo hàm hệ thống cần tiến hành theo bước sau: Tạo hàm sở liệu Master Tên hàm bắt đầu fn_functionName Thay đổi chủ nhân hàm thủ tục sp_changeobjectowner sau: EXEC sp_changeobjectowner ‘fn_ functionName’ , ‘system_function_schema’ Ví dụ: Tạo hàm hệ thống thực chuyển đổi biến kiểu ngày tháng sang kiểu chuỗi Tạo hàm fn_doingay create function fn_doingay(@ngay datetime) returns char(10) as begin return convert(nchar(10),@ngay,103) end Thay đổi chủ nhân hàm EXEC sp_changeobjectowner 'fn_doingay' , 'system_function_schema' Sau lệnh hàm fn_doingay dùng cho CSDL Select manv, hoten, fn_doingay(ngaysinh) From nhanvien VI Triggers cài đặt ràng buộc liệu Giới thiệu • Trigger loại stored procedure đặc biệt có đặc điểm sau: Bài giảng tóm tắt Hệ quản trị sở liệu 36 − Tự động thực có thao tác insert, delete update liệu − Thường dùng để kiểm tra ràng buộc toàn vẹn CSDL qui tắc nghiệp vụ − Một trigger định nghĩa bảng, xử lý trigger sử dụng nhiều bảng khác • Xử lý trigger thường cần sử dụng đến hai bảng tạm: − Inserted: chứa dòng vừa thao tác insert/ update thêm vào bảng − Deleted: chứa dịng vừa bị xóa khỏi bảng thao tác update/delete Lưu ý: update = delete dòng chứa giá trị cũ + insert dòng chứa giá trị − Inserted deleted bảng nhớ chính: Cục cho trigger Có cấu trúc giống bảng (table) mà trigger định nghĩa Chỉ tồn thời gian trigger xử lý − Nếu thao tác insert/ delete/ update thực nhiều dòng, trigger gọi lần Bảng inserted/ deleted chứa nhiều dịng Sử dụng Trigger Khai báo trigger − Cú pháp: Create trigger tên_trigger On {tên_bảng|tên_view} {For| After| Instead of } { [delete] [,] [insert] [,] [update] } As { lệnh T-sql } Go rong đó: For | After: − Trigger gọi thực sau thao tác delete/ insert/ update tương ứng thực thành cơng: Các dịng thêm chứa đồng thời bảng liệu bảng inserted Các dịng bị xố nằm bảng deleted (đã bị xoá khỏi bảng liệu) − Có thể xử lý quay lui thao tác thực lệnh rollback transaction Instead of: − Trigger gọi thực thay cho thao tác delete/ insert/ update tương ứng: 37 Bài giảng tóm tắt Hệ quản trị sở liệu Các dòng thêm chứa bảng inserted Các dịng bị định xố nằm đồng thời bảng deleted bảng liệu (dữ liệu khơng bị xố) − Trigger Instead of thường dùng để xử lý cập nhật khung nhìn Lưu ý: − Lệnh tạo trigger phải lệnh query batch − Trên bảng định nghĩa nhiều trigger for/after cho thao tác định nghĩa trigger instead of cho thao tác − Không thể định nghĩa trigger instead of update/ delete bảng có cài đặt khóa ngoại dạng update cascade/ delete cascade − Trong thân trigger, sử dụng hàm Update(tên_cột) để kiểm tra xem việc cập nhật thực cột Update(tên_cột) = true : có thực cập nhật cột tên_cột Sử dụng trigger cài đặt số loại ràng buộc Ví dụ 1- Ràng buộc liên thuộc tính – liên quan hệ Cho CSDL: DatHang(MaPDH, NgayDH,…) GiaoHang(MaPGH, MaPDH, NgayGH,…) Ràng buộc: Ngày giao hàng nhỏ ngày đặt hàng tương ứng Bảng tầm ảnh hưởng: Thêm DatHang GiaoHang + Xóa - Sửa + (NgayDH) + (NgayGH, MaPDH) Cần cài đặt trigger cho thao tác sửa bảng DatHang, thêm/sửa bảng Giaohang Trigger cho thao tác thêm sửa giao hàng: Create trigger tr_GH_ins_upd_NgayGH On GIAOHANG for insert, update As if update(MaPDH) or update (NgayGH) if exists(select * from inserted i, DatHang d where i.MaPDH = d.MaPDH 38 Bài giảng tóm tắt Hệ quản trị sở liệu and i.NgayGH begin raiserror('So lan thi phai

Ngày đăng: 10/05/2021, 23:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w