Bài tập thực hành môn cơ sở dữ liệu

3 738 3
Bài tập thực hành môn cơ sở dữ liệu

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

Thông tin tài liệu

Tài liệu thực hành môn CƠ SỞ DỮ LIỆU

Bài Thực hành Số 11 Mục tiêu: Tạo triggers CSDL mẫu : ToyWorld, HeadHunt, Pubs A. CSDL ToyWorld 1. Thực tập hàm RAISERROR a. Xem nội dung bảng sysmessages của CSDL master. Thêm 1 message của người dùng vào bảng sysmessages bằng lệnh sau: USE master EXEC sp_addmessage 50001, 16, ‘Mặt hàng tên %s đã trong bảng %s.' b. Sử dụng thông báo lỗi vùa tạo bằng lệnh RAISERROR như sau: declare @s1 char(10) , @s2 varchar(20) set @s2 =’Toys’ set @s1 = 'Large Duck' raiserror (50001, 16, 1, @s1,@s2) 2. Khi một hóa đơn mới, chi tiết của hóa đơn được lưu trữ trong bảng OrderDetail. Hệ thống phải giảm số lượng tồn kho của những đồ chơi nào được mua trong hóa đơn bằng với số lượng được đặt mua. Hãy tạo trigger cho việc cập nhật tự động này khi phát sinh một hoá đơn mới 3. Nếu khách mua hàng (shopper) thay đổi số lượng mua trong hóa đơn,thì số tiền mua cũng phải tự động thay đổi theo. Công thức tính như sau: Toy cost = Quantity * Toy Rate. Hãy tạo trigger cho lệnh cập nhật này 4. Khi khách hàng quyết định gói quà cho 1 món đồ chơi nào đó và đã chọn được kiểu gói quà thích hợp, thì kiểu gói này phải được cập nhật bằng lệnh UPDATE vào trường cWrapperID của bảng Order details. Hãy tạo 1 trigger cho lệnh này để thực hiện tự động các bước tiếp theo sau khi lệnh UPDATE trên được thực hiện: • Thay đổi trường cGiftWrap từ ‘N’ sang ‘Y’ • Cộng thêm phí gói quà mWrapperRate (từ bảng Wrapper) vào thành tiền của món đồ chơi đó theo công thức sau: Toycost = Toycost + mWrapperRate 1 5. Tạo 1 trigger hiển thị dòng cảnh báo ‘Notify shopper relations’ sau khi người dùng thực hiện 1 trong hai lệnh Update hay insert vào bảng Shopper 6. Tạo 1 trigger kiểm tra tình trạng thẻ tín dụng của người mua hàng mỗi khi họ đặt mua một hóa đơn mới. Nếu thẻ tín dụng từ năm 2000 trở về trước thì bị xem là không hợp lệ, trigger sẽ hủy bỏ hóa đơn mới và thông báo cho người mua hàng biết 6. Tạo 1 view vwOrder để hiển thị thông tin của 1 hoá đơn theo mẫu sau: Order No Order date Shopper Name Toy ID Toy Name Toy Rate Quantity Wrapper Description Toy Cost Người dùng rất hay dùng view này để chỉnh sửa một số trường Order date, Toy ID, Quantity. Hãy giúp người dùng thực hiện việc này thuận lợi nhất 7. Tạo một trigger cho lệnh delete 1 bản ghi bất kỳ trong bảng order details sao cho sau khi xóa xong nó sẽ cập nhật tự động lại trường ToyCost, mGiftWrapCharge của 1 bản ghi tương ứng trong bảng orders 8. Hãy tạo 1 view như sau: CREATE VIEW ConcatView AS SELECT cShopperID, vFirstName + ' ' + vLastName AS CombinedName FROM Shopper Hãy tạo 1 trigger loại INSTEAD OF INSERT cho view vừa tạo, nếu đã quy ước là khi dùng view để nhập 1 khách mua hàng mới thì trường CombineName luôn được nhập theo định dạng sau 'first_name;last_name' B. CSDL Headhunt 1. Khi 1 nhân viên nghỉ việc thì cần cập nhật ngày nghỉ việc (Resignation Date) vào bảng Employee. Hãy tạo trigger cho lệnh này để thực hiện tự động việc giảm đi 1 cho trường quân số hiện hành (iCurrentStrength) của bảng Position C. CSDL Pubs 1. Khi phát sinh 1 hoá đơn bán sĩ mới, một bản ghi mới được nhập vào bảng sales, số lượng bán này cần được cộng dồn vào trường ytd_sales của bảng titles. Hãy tạo trigger cho lệnh insert của bảng sales 2 2. Hãy tạo 1 trigger để ngăn không cho phép xoá bất kỳ bản ghi nào của bảng titles, authors và publishers Bài tập làm thêm Kiểm tra hoạt động của các bảng magic tên là inserted và deleted theo các bước sau: - Tạo bảng tên là Test_Trigger các trường sau: Tên trường Kiểu dữ liệu Thuộc tính c_date Datetime Not null Old_ID Char(6) Not null New_ID Char(6) Not null - Tạo trigger sau: create trigger update_trigger on shopper for update as declare @c1 char(6), @c2 char(6) select @c1 = shopperID from inserted select @c2 = shopperID from deleted insert Test_Trigger values (getdate(), @c2, @c1) - Thực hiện lệnh sau: update shopper set cShopperID = ‘AAAAAA’ where cShopperID =’000001’ - Thực hiện lệnh sau: select * from Test_Trigger Nhận xét?? 3 . Bài Thực hành Số 11 Mục tiêu: Tạo triggers CSDL mẫu : ToyWorld, HeadHunt, Pubs A. CSDL ToyWorld 1. Thực tập hàm RAISERROR a.

Ngày đăng: 28/03/2014, 21:02

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan