Báo cáo bài tập lớn môn hệ quản trị cơ sở dữ liệu – it10 chủ đề 04 quản lý kinh doanh cửa hàng thuốc

22 14 0
Báo cáo bài tập lớn môn hệ quản trị cơ sở dữ liệu – it10  chủ đề 04 quản lý kinh doanh cửa hàng thuốc

Đ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

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI TRUNG TÂM ĐÀO TẠO ELEARNING BÁO CÁO BÀI TẬP LỚN MÔN: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – IT10 CHỦ ĐỀ 04: QUẢN LÝ KINH DOANH CỬA HÀNG THUỐC SVTH: - Nguyễn Văn Chiến - Đào Thái Duy - Nguyễn Đình Duy - Nguyễn Viết Duy - Nguyễn Thị Thúy Hằng Giảng viên hướng dẫn: ThS Trịnh Thị Xuân Hà Nội - Năm 2022 MỤC LỤC Trang I PHÁT BIỂU BÀI TOÁN II MƠ HÌNH CSDL QUAN HỆ III TẠO CƠ SỞ DỮ LIỆU IV XÂY DỰNG CÁC VIEW CHO CSDL V XÂY DỰNG CÁC PROCEDURE CHO CSDL 12 VI XÂY DỰNG CÁC TRIGGER C .15 VII PHÂN QUYỀN VÀ BẢO MẬT CSDL 18 VIII PHÂN TÁN CƠ SỞ DỮ LIỆU .19 CHỦ ĐỀ 04 I Đề - Xây dựng chương trình quản lý kinh doanh cửa hàng thuốc - Các bảng tối thiểu cần có: tblThuoc(Thuốc), tblKhachHang(Khách hàng), tblNhanVien(Nhân viên), tblHoaDon(Hố đơn), tblCTHoaDon(Chi tiết hoá đơn),… (Sinh viên tự xác định thuộc tính bổ sung thêm bảng phù hợp với toán thực tế) - Yêu cầu cần thực hiện: Xác định bảng Tạo CSDL toán (1 điểm): Thực câu lệnh tạo CSDL, tạo bảng chèn liệu cho bảng, bảng tối thiểu ghi Tạo view chứa khai thác CSDL (2 điểm): Tối thiểu 10 view (gồm: Lấy thông tin bảng, lấy thông tin nhiều bảng, tính tốn gom nhóm, …) Tạo thực thi thủ tục cho CSDL (2 điểm): Tối thiểu thủ tục (các thủ tục có truyền tham số) Tạo vận dụng trigger (2 điểm): Tối thiểu trigger Phân quyền bảo mật cho CSDL (2 điểm): Tạo tối thiểu người dùng phân quyền sử dụng cho Bảng, View, Thủ tục tạo Phân tán (1 điểm): lựa chọn số bảng bất kỳ, thực phân tán ngang dọc, thực yêu cầu khai thác liệu phân tán II Yêu cầu chung báo cáo chương trình *Tồn chương trình file báo cáo BTL lưu thư mục với tên theo nguyên tắc sau: Nguyên tắc: SQLSERVER-BTL-- Ví dụ: SQLSERVER -BTL-01-NguyenVanHung *Chương trình: Tạo file Query ghi nhận tồn câu lệnh thực xử lý với CSDL toám gồm: Tạo sở liệu, tạo chỉnh sửa bảng, tạo kiểm tra View, tạo thực thi thủ tục Proc, tạo thực thi Trigger, tạo người dùng phân quyền người dùng, … *Cấu trúc báo cáo: Trang bìa: Tên đề tài, tên nhóm (gồm họ tên thành viên nhóm), tên lớp Mục lục Giới thiệu đề tài Phát biểu tốn Mơ hình CSDL tạo CSDL – tạo chỉnh sửa bảng Các đối tượng CSDL gồm: View, Proc, Trigger Phân quyền bảo mật CSDL … Kết luận, hướng phát triển 10 Tài liệu tham khảo I PHÁT BIỂU BÀI TOÁN Quản lý kinh doanh hàng thuốc gồm thông tin sau: Mỗi loại thuốc phải có mã thuốc, tên thuốc, số lượng, đơn vị tính (viên, vỉ,…), giá mã nhà sản xuất thuốc Mã nhà xản xuất dùng để tra cứu thông tin nhà sản xuất tên, địa chỉ, số điện thoại Khách hàng mua thuốc lưu lại thông tin tên, địa chỉ, số điện thoại mã khách hàng.Địa số điện thoại khách hàng dùng làm phương thức giao hàng nên không bỏ trống Các giao dịch với khách hàng lập hoá đơn Hoá đơn bao gồm mã hoá đơn, ngày đặt hàng, mã khách hàng, mã nhân viên lập hoá đơn tổng tiền Trong hoá đơn bao gồm chi tiết hoá đơn mã chi tiết hoá đơn, mã hoá đơn, mã thuốc, số lượng, thành tiền loại thuốc tổng tiền Số lượng thuốc cập nhật lại sau khách hàng mua thuốc Nhà thuốc quản lý nhân viên mã nhân viên, tên nhân viên, địa chỉ, số điện thoại, ngày sinh giới tính Các nhân viên giới hạn độ tuổi làm việc từ 18 tuổi đến 65 tuổi chỉnh sửa mã nhân viên cập nhật lại thơng tin nhân viên Chương trình phân quyền để phù hợp cho mục đích sử dụng người II MƠ HÌNH CSDL QUAN HỆ Ta có CSDL tồn sau: tblNhaSanXuat (MaNSX, TenNSX, DiaChi, SDT) tblThuoc (MaThuoc, TenThuoc, SoLuong, DVT, DonGia, MaNSX) tblKhachHang (MaKH, TenKH, DiaChi, SDT) tblNhanVien (MaNV, TenNV, DiaChi, SDT, NgaySinh, GioiTinh) tblHoaDon (MaHD, NgayDatHang, MaKH, MaNV, TongTien) tblCTHoaDon (MaCTHD, MaHD, MaThuoc, SoLuong, ThanhTien, TongThanhTien) Các bảng xác định cấu trúc sau: *tblNhaSanXuat: ST T Tên thuộc tính MaNSX Kiểu liệu Nvarchar(50) Ràng buộc PK Ghi Mã nhà sản xuất TenNSX DiaChi SDT Nvarchar(255) Nvarchar(255) varchar(10) Tên nhà sản xuất Địa nhà sản xuất Số điện thoại *tblThuoc: ST T Tên thuộc tính MaThuoc TenThuoc SoLuong DVT DonGia MaNSX Kiểu liệu Ràng buộc Nvarchar(50) Nvarchar(255) int Nvarchar(50) Float Nvarchar(50) PK FK tham chiếu sang tblNhaSanXuat Ghi Mã thuốc Tên thuốc Số lượng Đơn vị tính Đơn giá Mã nhà sản xuất *tblKhachHang ST T Tên thuộc tính MaKH TenKH DiaChi SDT Kiểu liệu Ràng buộc Nvarchar(50) Nvarchar(255) Nvarchar(255 varchar(10) PK Kiểu liệu Ràng buộc Nvarchar(50) Nvarchar(255) Nvarchar(255) varchar(10) DateTime Nvarchar(4) PK Ghi Mã khách hàng Tên khách hàng Địa Số điện thoại *tblNhanVien: ST T Tên thuộc tính MaNV TenNV DiaChi SDT NgaySinh GioiTinh Ghi Mã khách hàng Tên nhân viên Địa Số điện thoại Ngày sinh Giới tính *tblHoaDon: ST T Tên thuộc tính MaHD NgayDatHan Kiểu liệu Ràng buộc Nvarchar(50) DateTime PK Ghi Mã hóa đơn Ngày đặt hàng g MaKH MaNV Nvarchar(50) FK, tham chiếu sang Mã khách hàng Nvarchar(50) bảng tblKhachHang FK, tham chiếu sang Mã nhân viên bảng tblNhanVien TongTien Float Tổng tiền *tblCTHoaDon: ST T Tên thuộc tính Kiểu liệu Ràng buộc MaCTHD MaHD Nvarchar(50) Nvarchar(50) PK FK, tham chiếu sang Mã chi tiết hóa đơn Mã hóa đơn MaThuoc Nvarchar(50) bảng tblHoaDon FK, tham chiếu sang bảng tblThuoc Mã thuốc SoLuong int ThanhTien Float TongThanhTien Float Ghi Số lượng Thành tiền Tổng thành tiền III TẠO CƠ SỞ DỮ LIỆU - Tạo db Tạo bảng nhà sản xuất CREATE TABLE tblNhaSanXuat ( MaNSX Nvarchar(50) not null, TenNSX Nvarchar(255) not null, DiaChi Nvarchar(255) null, SDT varchar(10) null, PRIMARY KEY (MaNSX), ); Tạo bảng thuốc CREATE TABLE tblThuoc ( MaThuoc Nvarchar(50) not null, TenThuoc Nvarchar(255) not null, SoLuong int not null, DVT Nvarchar(50) null, DonGia Float not null, MaNSX Nvarchar(50) not null PRIMARY KEY (MaThuoc), FOREIGN KEY (MaNSX) REFERENCES tblNhaSanXuat(MaNSX), ); Bảng khách hàng CREATE TABLE tblKhachHang ( MaKH Nvarchar(50) not null, TenKH Nvarchar(255) not null, DiaChi Nvarchar(255) null, SDT varchar(10) null, PRIMARY KEY (MaKH) ); Bảng nhân viên CREATE TABLE tblNhanVien ( MaNV Nvarchar(50) not null, TenNV Nvarchar(255) not null, DiaChi Nvarchar(255) null, SDT varchar(10) null, NgaySinh DateTime null, GioiTinh Nvarchar(4) null, PRIMARY KEY (MaNV), ); Bảng hóa don CREATE TABLE tblHoaDon ( MaHD Nvarchar(50) not null, NgayDatHang DateTime not null, MaKH Nvarchar(50) not null, MaNV Nvarchar(50) not null, TongTien Float not null, PRIMARY KEY (MaHD), FOREIGN KEY (MaKH) REFERENCES tblKhachHang(MaKH), FOREIGN KEY (MaNV) REFERENCES tblNhanVien(MaNV) ); Bảng chi tiết hóa don CREATE TABLE tblCTHoaDon ( MaCTHD Nvarchar(50) not null, MaHD Nvarchar(50) not null, MaThuoc Nvarchar(50) not null, SoLuong int not null, ThanhTien Float not null, TongThanhTien Float not null, PRIMARY KEY (MaCTHD), FOREIGN KEY (MaHD) REFERENCES tblHoaDon(MaHD), FOREIGN KEY (MaThuoc) REFERENCES tblThuoc(MaThuoc) ); - Chèn liệu cho bảng Chèn liệu cho bảng tblNhaSanXuat INSERT INTO tblNhaSanXuat (MaNSX, TenNSX, DiaChi,SDT) VALUES ('NSX01', N'Công ty cổ phần dược phẩm OPC',N'1017 - Hồng Bàng, Phường 12, Quận 6, Tp.HCM',02837517111); INSERT INTO tblNhaSanXuat (MaNSX, TenNSX, DiaChi,SDT) VALUES ('NSX02', N'Cơng ty CP hố dược phẩm Mekophar',N'297/5 Lý Thường Kiệt, Quận 11, Tp.HCM, Việt Nam.',02838650258); INSERT INTO tblNhaSanXuat (MaNSX, TenNSX, DiaChi,SDT) VALUES ('NSX03', N'Cơng ty CP hố dược phẩm Mekophar',N'297/5 Lý Thường Kiệt, Quận 11, Tp.HCM, Việt Nam.',02838650258); INSERT INTO tblNhaSanXuat (MaNSX, TenNSX, DiaChi,SDT) VALUES ('NSX04', N'Công ty cổ phần dược phẩm TW25',N'448B Nguyễn Tất Thành, P 18, Quận 4, TP.HCM',02839404351); INSERT INTO tblNhaSanXuat (MaNSX, TenNSX, DiaChi,SDT) VALUES ('NSX05', N'Công ty Cổ Phần Sanofi Việt Nam',N'15/6C, Đặng Văn Bi, Q Thủ Đức TP.HCM',0287109424); Chèn liệu cho bảng tblThuoc INSERT INTO tblThuoc (MaThuoc, TenThuoc, SoLuong, DVT, DonGia,MaNSX) VALUES ('T001', N'Thuốc Atorvastatin 20Mg Trị Tăng Cholesterol Máu', '10', N'Vỉ', '10000','NSX04'); INSERT INTO tblThuoc (MaThuoc, TenThuoc, SoLuong, DVT, DonGia,MaNSX) VALUES ('T002', N'Thuốc Kháng Sinh Tetracyclin 500Mg Vidipha Điều Trị Nhiễm Khuẩn' , '10', N'Hộp', '48000','NSX04'); INSERT INTO tblThuoc (MaThuoc, TenThuoc, SoLuong, DVT, DonGia,MaNSX) VALUES ('T003', N'Siro Ho Astex 90Ml Opc Giảm Ho Viêm Họng, Viêm Phế Quản', '10', N'Chai', '38000','NSX01'); INSERT INTO tblThuoc (MaThuoc, TenThuoc, SoLuong, DVT, DonGia,MaNSX) VALUES ('T004', N'Paracetamol 500mg Vidipha', '15', N'Hộp', '19000','NSX02'); INSERT INTO tblThuoc (MaThuoc, TenThuoc, SoLuong, DVT, DonGia,MaNSX ) VALUES ('T005', N'Viên uống An thần dễ ngủ Mimosa hộp 50 viên', '15', N'Hộp', '70900','NSX01'); Chèn liệu cho bảng tblKhachHang INSERT INTO tblKhachHang (MaKH, TenKH, DiaChi, SDT) VALUES ('KH001', N'Nguyễn Văn A', N'Số 1, đường Nguyễn Thị Minh Khai, TP.HCM ', 0983456780); INSERT INTO tblKhachHang (MaKH, TenKH, DiaChi, SDT) VALUES ('KH002', N'Nguyễn Văn B', N'Số 8, đường Nguyễn Văn Bi, TP.HCM ', 0986780320); INSERT INTO tblKhachHang (MaKH, TenKH, DiaChi, SDT) VALUES ('KH003', N'Nguyễn Văn Sơn', N'Số 13B, đường Nguyễn Ðình Chiểu, TP.HCM ', 0945675678); INSERT INTO tblKhachHang (MaKH, TenKH, DiaChi, SDT) VALUES ('KH004', N'Nguyễn Thị Lan', N'Số 687, đường Nguyễn Ái Qu ốc, TP.HCM ' , 0935873478); INSERT INTO tblKhachHang (MaKH, TenKH, DiaChi, SDT) VALUES ('KH005', N'Ðặng Thị Thu Hà', N'Số 11/2B, đường S ơn Ðông, TP.HCM ' , 0945675678); INSERT INTO tblKhachHang (MaKH, TenKH, DiaChi, SDT) VALUES ('KH006', N'Ngô Diệt Phàm', N'Số 11/2B, đường Sơn Tây, Hà Nội ',''); Chèn liệu cho bảng tblNhanVien INSERT INTO tblNhanVien (MaNV, TenNV, DiaChi, SDT,NgaySinh,GioiTinh) VALUES ('NV001', N'Nguyễn Văn C', N'TP.HCM', 0983455678,'2000-04-13', 'Nam'); INSERT INTO tblNhanVien (MaNV, TenNV, DiaChi, SDT,NgaySinh,GioiTinh) VALUES ('NV002',N'Nguyễn Văn D', N'TP.HCM', 0867980320,'2000-05-13','Nam'); INSERT INTO tblNhanVien (MaNV, TenNV, DiaChi, SDT,NgaySinh,GioiTinh) VALUES ('NV003',N'Nguyễn Văn Hà', N'TP.HCM', 0945675438,'2000-06-13','Nam'); INSERT INTO tblNhanVien (MaNV, TenNV, DiaChi, SDT,NgaySinh,GioiTinh) VALUES ('NV004',N'Ngơ Minh Chí', N'TP.HCM', 0939654378,'2001-04-13',N'Nữ'); INSERT INTO tblNhanVien (MaNV, TenNV, DiaChi, SDT,NgaySinh,GioiTinh) VALUES ('NV005',N'Nguyễn Thị Linh', N'TP.HCM', 0920965678,'1999-04-13',N'Nữ'); INSERT INTO tblNhanVien (MaNV, TenNV, DiaChi, SDT,NgaySinh,GioiTinh) VALUES ('NV006',N'Đặng Thị Thanh', N'Hà Nội','','1997-05-13',N'Nữ'); INSERT INTO tblNhanVien (MaNV, TenNV, DiaChi, SDT,NgaySinh,GioiTinh) VALUES ('NV007',N'Đào Bá Phương', N'Hà Nội','','2000-10-13',N'Nữ'); Chèn liệu cho bảng tblHoaDon INSERT INTO tblHoaDon (MaHD, NgayDatHang, MaKH, TongTien,MaNV) VALUES ('HD001','2022-08-23', 'KH005', 150000,'NV003'); INSERT INTO tblHoaDon (MaHD, NgayDatHang, MaKH, TongTien,MaNV) VALUES ('HD002','2022-08-24', 'KH005', 169000,'NV003'); INSERT INTO tblHoaDon (MaHD, NgayDatHang, MaKH, TongTien,MaNV) VALUES ('HD003','2022-08-24', 'KH002', 300000,'NV004'); INSERT INTO tblHoaDon (MaHD, NgayDatHang, MaKH, TongTien,MaNV) VALUES ('HD004','2022-08-25', 'KH003', 550000,'NV005'); INSERT INTO tblHoaDon (MaHD, NgayDatHang, MaKH, TongTien,MaNV) VALUES ('HD005','2022-08-26', 'KH004', 750000,'NV002'); INSERT INTO tblHoaDon (MaHD, NgayDatHang, MaKH, TongTien,MaNV) VALUES ('HD006','2022-08-24', 'KH005', 650000,'NV004'); Chèn liệu cho bảng tblCTHoaDon INSERT INTO tblCTHoaDon (MaCTHD, MaHD, MaThuoc, SoLuong, ThanhTien, TongThanhTien) VALUES ('CTHD001','HD001','T001', 3, 150000, 150000); INSERT INTO tblCTHoaDon (MaCTHD, MaHD, MaThuoc, SoLuong, ThanhTien, TongThanhTien) VALUES ('CTHD002','HD002','T002', 3, 150000, 150000); INSERT INTO tblCTHoaDon (MaCTHD, MaHD, MaThuoc, SoLuong, ThanhTien, TongThanhTien) VALUES ('CTHD003','HD002','T003', 4, 150000, 250000); INSERT INTO tblCTHoaDon (MaCTHD, MaHD, MaThuoc, SoLuong, ThanhTien, TongThanhTien) VALUES ('CTHD004','HD003','T003', 2, 150000, 250000); INSERT INTO tblCTHoaDon (MaCTHD, MaHD, MaThuoc, SoLuong, ThanhTien, TongThanhTien) VALUES ('CTHD005','HD004','T004', 2, 150000, 350000); - Sơ đồ quan hệ bảng IV XÂY DỰNG CÁC VIEW CHO CSDL - Tạo view: Tạo view ds khách hàng Create VIEW DSKhachHang_VIEW AS SELECT TenKH, DiaChi, SDT FROM tblKhachHang; Select *from DSKhachHang_VIEW Tạo view ds nhân viên Create VIEW NhanVien_VIEW AS Create VIEW NhanVien_VIEW AS SELECT TenNV, GioiTinh, DiaChi, SDT FROM tblNhanVien; Select *from NhanVien_VIEW Tạo view ds nhân viên có giới tính Nam Create VIEW NhanVienNam_VIEW AS SELECT MaNV, TenNV, GioiTinh FROM tblNhanVien WHERE GioiTinh = 'Nam'; select *from NhanVienNam_VIEW Tạo view ds nhân viên có giới tính Nữ Create VIEW SanPham_VIEW AS SELECT MaThuoc, TenThuoc, MaNSX FROM tblThuoc WHERE MaNSX = N'NSX04'; select *from SanPham_VIEW Tạo view ds nhân viên có địa TP.HCM Create VIEW AdNhanVien_VIEW AS SELECT TenNV , DiaChi FROM tblNhanVien WHERE DiaChi like '%HCM%' select *from AdNhanVien_VIEW Tạo view ds hóa đơn có số tiền 200000 Create VIEW Total_VIEW AS SELECT MaHD, NgayDatHang, MaKH, TongTien FROM tblHoaDon WHERE TongTien >= 200000; select *from Total_VIEW 10 Tạo View tính tổng số hóa đơn lập Nhân viên CREATE VIEW SumHDByNV_VIEW AS SELECT MaNV,SUMHD = Count(MaHD) FROM tblHoaDon GROUP BY MaNV select *from SumHDByNV_VIEW Tạo View tính tổng số hóa đơn lập nhân viên ngày 24/08/2022 CREATE VIEW SUMHDDAY_VIEW AS SELECT MaNV, NgayDatHang ,SUMHD = Count(MaHD) FROM tblHoaDon WHERE NgayDatHang = '2022-08-24' GROUP BY MaNV , NgayDatHang select *from SUMHDDAY_VIEW Tạo ds nhân viên khơng có số điện thoại Create VIEW PhoneNullNhanVien_VIEW AS SELECT TenNV, DiaChi 11 FROM tblNhanVien WHERE SDT = '' select *from PhoneNullNhanVien_VIEW Tạo view tổng tiền cửa hàng kiếm Create VIEW TongTienCuaHangKiemDuoc_VIEW AS SELECT SUM(TongTien) As Total FROM tblHoaDon select *from TongTienCuaHangKiemDuoc_VIEW Tạo view tuổi trung bình NV Create VIEW TuoiTBCuaNV_VIEW AS select avg(datediff(year,NgaySinh , GETDATE())) as age from tblNhanVien select *from TuoiTBCuaNV_VIEW V XÂY DỰNG CÁC PROCEDURE CHO CSDL - Tạo procedure: Tạo Proc thêm nhân viên vào bảng tblNhanVien 12 Create proc sp_NhanVienInsert ( @manv Nvarchar(50), @tennv Nvarchar(255), @diachi Nvarchar(255), @sdt varchar(10), @ngaysinh datetime, @gioitinh Nvarchar(4) ) as begin insert tblNhanVien values (@manv,@tennv,@diachi,@sdt,@ngaysinh,@gioitinh) end exec sp_NhanVienInsert 'NV008',N'Nguyễn Thị Trúc Anh',N'Hà Nội',0982154369,'2000-0318',N'Nữ' Select *from tblNhanVien Tạo Proc update nhân viên Create proc sp_SuaNhanVien ( @manv Nvarchar(50), @tennv Nvarchar(255), @diachi Nvarchar(255), @sdt varchar(10), @ngaysinh datetime, @gioitinh Nvarchar(4) ) as begin if exists (Select MaNV from tblNhanVien where MaNV =@manv) begin Update tblNhanVien Set MaNV= @manv, TenNV= @tennv, DiaChi= @diachi, SDT= @sdt, NgaySinh= @ngaysinh, GioiTinh= @gioitinh Where MaNV = @manv print N'Đã cập nhật thành công thông tin nhân viên: ' + @manv return end else print N'Không tồn mã nhân viên: ' + @manv return 13 end exec sp_SuaNhanVien 'NV006',N'Đặng Thị Thanh update', N'Hà Nội','','2000-0513',N'Nữ'; select *from tblNhanVien Tạo Proc Xóa nhân viên khỏi bảng tblNhanVien CREATE PROC sp_NhanVienDelete @manv Nvarchar(50) AS DELETE tblNhanVien Where MaNV=@manv exec sp_NhanVienDelete NV008 Select *from tblNhanVien Tạo Proc đếm số hóa đơn có tổng giá tiền => 300000 CREATE PROC sp_GetHoaDon(@tongtien FLOAT = 300000, @HoaDon_COUNT INT OUTPUT) AS BEGIN SELECT * FROM tblHoaDon WHERE TongTien >= @tongtien SELECT @HoaDon_COUNT = @@ROWCOUNT; END; declare @demHD INT; exec sp_GetHoaDon @tongtien = 300000, @HoaDon_COUNT = @demHD OUTPUT; 14 Select @demHD AS Tong_So_HĐ Tạo Proc để list hóa đơn mà nhân viên làm CREATE PROC sp_HDNhanVienDaLam(@manv NVARCHAR(50)) AS select MaHD, MaNV from tblHoaDon where MaNV = @manv exec sp_HDNhanVienDaLam NV002 VI XÂY DỰNG CÁC TRIGGER C - Tạo trigger Tạo trigger thêm liệu bảng chi tiết hóa đơn create trigger tg_AddToBillInfo on tblCTHoaDon for insert as Update tblThuoc set tblThuoc.SoLuong = tblThuoc.SoLuong - inserted.SoLuong from tblThuoc inner join inserted on tblThuoc.MaThuoc = inserted.MaThuoc Select INSERT VALUES Select Select * from tblThuoc INTO tblCTHoaDon (MaCTHD, MaHD, MaThuoc, SoLuong, ThanhTien, TongThanhTien) ('CTHD006','HD004','T001', 7, 10000, 70000); * from tblCTHoaDon * from tblThuoc 15 Tạo trigger cập nhật liệu bảng Thuoc create trigger tg_CancelBill on tblCTHoaDon for delete as Update tblThuoc set tblThuoc.SoLuong = tblThuoc.SoLuong + deleted.SoLuong from tblThuoc inner join deleted on tblThuoc.MaThuoc = deleted.MaThuoc Select Select Delete Select Select * from tblThuoc * from tblCTHoaDon From tblCTHoaDon where MaCTHD = 'CTHD006' * from tblCTHoaDon * from tblThuoc 16 Tạo Insert trigger nhằm đảm bảo nhập khách bắt buộc phải có địa sdt để liên lạc create trigger tg_InserCustomer on tblKhachHang for insert as begin if exists(Select *from inserted where DiaChi = '' and SDT = '') begin print N'Vui lòng nhập địa sdt khách hàng' ; Rollback Transaction; end end INSERT INTO tblKhachHang (MaKH, TenKH, DiaChi, SDT) VALUES ('KH007', N'Ngô Thị Bắp', N'',''); Tạo Insert trigger ràng buộc khơng cho xóa nhân viên create trigger tg_EditMaNV on tblNhanVien for update as 17 begin if UPDATE(MaNV) begin print N'Không thể thay đổi giá trị này' Rollback Tran end end Update tblNhanVien set MaNV = '1' Where MaNV = 'NV001' create trigger tg_ValidateAge on tblNhanVien for insert as declare @tuoi int; select @tuoi = DateDiff(Year, NgaySinh, GetDate() )+1 from inserted if @tuoi 65 begin print N'Tuổi nhân viên không hợp lệ khoảng 18

Ngày đăng: 20/09/2023, 15:42

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

  • Đang cập nhật ...

Tài liệu liên quan