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

3 541 1
  • Loading ...
1/3 trang

Thông tin tài liệu

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

Tài liệu thực hành môn CƠ SỞ DỮ LIỆU Bài Thực hành Số 11Mục tiêu: Tạo triggersCSDL mẫu : ToyWorld, HeadHunt, PubsA. CSDL ToyWorld1. Thực tập hàm RAISERRORa. 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ới3. 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ày4. 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 15. 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 Shopper6. 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ết6. Tạo 1 view vwOrder để hiển thị thông tin của 1 hoá đơn theo mẫu sau:Order NoOrder dateShopper NameToy ID Toy NameToy RateQuantity Wrapper DescriptionToy 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ất7. 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 orders8. Hãy tạo 1 view như sau:CREATE VIEW ConcatViewASSELECT cShopperID, vFirstName + ' ' + vLastName AS CombinedNameFROM ShopperHã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 PositionC. CSDL Pubs1. 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 sales22. 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à publishersBài tập làm thêmKiể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ínhc_date Datetime Not nullOld_ID Char(6) Not nullNew_ID Char(6) Not null- Tạo trigger sau:create trigger update_triggeron shopper for updateasdeclare @c1 char(6), @c2 char(6)select @c1 = shopperID from insertedselect @c2 = shopperID from deletedinsert 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_TriggerNhậ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.
- Xem thêm -

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

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay