Bai tap sql server quan ly ban hang – QUẢN LÝ BÁN HÀNG Mô Hình Cơ Sở Dữ Liệu : Mô Hình Liên Kết Thực – Studocu

Contents

QUẢN LÝ BÁN HÀNG

Mô Hình Cơ Sở Dữ Liệu :

Mô Hình Liên Kết Thực Thể :

SoDH char ( four ), MaNhaCC charwoman ( three ), NgayDH DATETIME default GETDATE ( ), constraint PRK_DonDH_SoDH primary key ( SoDH ) )

5. Tạo Bảng Chi Tiết Đơn Đặt Hàng
CREATE TABLE CTDONDH
(

SoDH charwoman ( four ), MaVTu char ( four ), SLDat INT constraint PRK_CTDONDH_SoDH_MaVTu primary key ( SoDH, MaVTu ), constraint CHK_CTDONDH_SLDat check ( SLDat > zero ) )

6. Tạo Bảng Phiếu Nhập
CREATE TABLE PNHAP
(

SoPN char ( four ), SoDH char ( four ), NgayNhap DATETIME constraint PRK_PNHAP_SoPN elementary key ( SoPN ) )

7. Tạo Bảng Chi Tiết Phiếu Nhập
CREATE TABLE CTPNHAP
(

SoPN char ( four ), MaVTu char ( four ), SLNhap INT, DGNhap money constraint PRK_CTPNHAP_SoPN_MaVTu primary key ( SoPN, MaVTu ), constraint CHK_CTPNHAP_SLNhap control ( SLNhap > zero AND DGNhap > zero ) )

8. Tạo Bảng Phiếu Xuất
CREATE TABLE PXUAT
(

SoPX char ( four ), NgayXuat DATETIME, TenKH VARCHAR ( hundred ) restraint PRK_PXUAT_SoPX primary key ( SoPX ) )

9. Tạo Bảng Chi Tiết Phiếu Xuất
CREATE TABLE CTPXUAT
(

SoPX char ( four ), MaVTu charwoman ( four ), SLXuat INT, DGXuat money constraint PRK_CTPXUAT_SoPX_MaVTu primary coil key ( SoPX, MaVTu ), constraint CHK_CTPXUAT_SLXuat_DGXuat check ( SLXuat > zero AND DGXuat > zero ) )

10. Tạo Bảng Tồn Kho
CREATE TABLE TONKHO
(

NamThang char ( six ), MaVTu char ( four ), SLDau INT default option zero, TongSLN INT nonpayment zero, TongSLX INT default zero, SLCuoi a SLDau + TongSLN – TongSLX constraint PRK_TONKHO_NamThang_MaVTu primary key ( NamThang, MaVTu ), constraint CHK_TONKHO_SLDau_TongSLN_TongSLX check ( SLDau > = zero AND TongSLN > = zero AND TongSLX > = zero ) )

11. Tạo Liên Kết Giữa Các Bảng Dữ Liệu

alter mesa DONDH add restraint FRK_DonDH_NhaCC_MaNhaCC foreign key ( MaNhaCC ) reference NhaCC ( MaNhaCC ) change table CTDONDH lend constraint FRK_CTDONDH_VATTU_MaVTu foreign keystone ( MaVTu ) reference VATTU ( MaVTu ) alter postpone CTDONDH add restraint FRK_CTDONDH_DONDH_SoDH foreign identify ( SoDH ) character DONDH ( SoDH ) change table PNHAP add restraint FRK_PNhap_DonDH_SoDH alien keystone ( SoDH ) mention DONDH ( SoDH ) change table CTPNHAP add constraint FRK_CTPNHAP_VATTU_MaVTu foreign samara ( MaVTu ) reference point VATTU ( MaVTu ) change table CTPNHAP add restraint FRK_CTPNHAP_PNHAP_SoPN foreign key ( SoPN ) reference point PNHAP ( SoPN ) change table CTPXUAT attention deficit disorder constraint FRK_CTPXUAT_VATTU_MaVTu foreign key ( MaVTu ) reference book VATTU ( MaVTu ) change table CTPXUAT add constraint FRK_CTPXUAT_PXUAT_SoPX alien key ( SoPX ) reference book PXUAT ( SoPX ) alter table TONKHO add constraint FRK_TONKHO_VATTU_MaVTu extraneous key ( MaVTu ) reference VATTU ( MaVTu ) go

II, Chèn Dữ Liệu Vào Các Bảng :

1. Chèn bảng Nhà Cung Cấp

cut-in INTO NHACC ( MaNhaCC, TenNhaCC, DiaChi, DienThoai ) rate ( ‘C01 ‘, ‘Bui Tien Truong ‘, ‘Xuan lanthanum, tay holmium, hour angle Noi ‘, ‘0989995221 ‘ ) tuck INTO NHACC ( MaNhaCC, TenNhaCC, DiaChi, DienThoai ) value ( ‘C02 ‘, ‘Nguyen Thi Thu ‘, ‘Quan la, tay holmium, hour angle Noi ‘, ‘0979012300 ‘ ) insert INTO CTPNHAP ( SoPN, MaVTu, SLNhap, DGNhap ) values ( ‘N002 ‘, ‘DD02’,5,3500000 ) cut-in INTO CTPNHAP ( SoPN, MaVTu, SLNhap, DGNhap ) value ( ‘N003 ‘, ‘VD02’,30,2500000 ) tuck INTO CTPNHAP ( SoPN, MaVTu, SLNhap, DGNhap ) respect ( ‘N004 ‘, ‘TV14’,5,2500000 ) insert INTO CTPNHAP ( SoPN, MaVTu, SLNhap, DGNhap ) value ( ‘N004 ‘, ‘TV29’,12,3500000 )

7. Chèn bảng Phiếu Xuất

tuck INTO PXUAT ( SoPX, NgayXuat, TenKH ) value ( ‘X001 ‘, ’01/17/2002 ‘, ‘Duong Minh Chau ‘ ) cut-in INTO PXUAT ( SoPX, NgayXuat, TenKH ) value ( ‘X002 ‘, ’01/25/2002 ‘, ‘Nguyen Kim droppings ‘ ) tuck INTO PXUAT ( SoPX, NgayXuat, TenKH ) value ( ‘X003 ‘, ’01/31/2002 ‘, ‘Nguyen Tien dung ‘ )

8. Chèn bảng Chi Tiết Phiếu Xuất

insert INTO CTPXUAT ( SoPX, MaVTu, SLXuat, DGXuat ) value ( ‘X001 ‘, ‘DD01’,2,3500000 ) insert INTO CTPXUAT ( SoPX, MaVTu, SLXuat, DGXuat ) value ( ‘X002 ‘, ‘DD01’,1,3500000 ) tuck INTO CTPXUAT ( SoPX, MaVTu, SLXuat, DGXuat ) measure ( ‘X002 ‘, ‘DD02’,5,4900000 ) cut-in INTO CTPXUAT ( SoPX, MaVTu, SLXuat, DGXuat ) value ( ‘X003 ‘, ‘DD01’,3,3500000 ) tuck INTO CTPXUAT ( SoPX, MaVTu, SLXuat, DGXuat ) value ( ‘X003 ‘, ‘DD02’,2,4900000 ) tuck INTO CTPXUAT ( SoPX, MaVTu, SLXuat, DGXuat ) value ( ‘X003 ‘, ‘VD02’,10,3250000 )

9. Chèn bảng Tồn Kho

insert INTO TONKHO ( NamThang, MaVTu, SLDau, TongSLN, TongSLX ) rate ( ‘200201 ‘, ‘DD01’,0,10,6 ) slip in INTO TONKHO ( NamThang, MaVTu, SLDau, TongSLN, TongSLX ) value ( ‘200201 ‘, ‘DD02’,0,15,7 ) insert INTO TONKHO ( NamThang, MaVTu, SLDau, TongSLN, TongSLX ) value ( ‘200201 ‘, ‘VD02’,0,30,10 ) tuck INTO TONKHO ( NamThang, MaVTu, SLDau, TongSLN, TongSLX ) value ( ‘200202 ‘, ‘DD01’,4,0,0 ) tuck INTO TONKHO ( NamThang, MaVTu, SLDau, TongSLN, TongSLX ) value ( ‘200202 ‘, ‘DD02’,8,0,0 ) insert INTO TONKHO ( NamThang, MaVTu, SLDau, TongSLN, TongSLX ) value ( ‘200202 ‘, ‘VD02’,20,0,0 ) insert INTO TONKHO ( NamThang, MaVTu, SLDau, TongSLN, TongSLX ) rate ( ‘200202 ‘, ‘TV14’,5,0,0 ) slip in INTO TONKHO ( NamThang, MaVTu, SLDau, TongSLN, TongSLX ) rate ( ‘200202 ‘, ‘TV29’,12,0,0 )

III, Bài Tập VIEW :

1. Tạo view vw_DMVT gồm (MaVTu và TenVTu) dùng để liệt kê danh sách
các vật tư hiện có trong bảng VATTU :

create see vw_DMVT american samoa blue-ribbon MaVTu, TenVTu FROM VatTu choose * FROM vw_DMVT

2. Tạo view vw_DonDH_TongSLDatNhap gồm (SoHD, TongSLDat và
TongSLNhap) dùng để thống kê những đơn đặt hàng đã được nhập hàng
đầy đủ :

create view vw_DonDH_TongSLDatNhap ( SoDH, TongSLDat, TongSLNhap ) a choice DH, sum ( SLDat ), union ( SLNhap )

FROM DONDH DH LEFT JOIN (PNHAP PN INNER JOIN CTPNHAP CTPN ON

PN.SoPN=CTPN ) on DH.SoDH=PN leave join CTDONDH on DH.SoDH=CTDONDH group aside DH blue-ribbon * FROM vw_DonDH_TongSLDatNhap

3. Tạo view vw_DonDH_DaNhapDu gồm (SoHD, DaNhapDu) có hai giá trị
là ‘Da Nhap Du’ nếy đơn hàng đó đã nhập đủ hoặc ‘Chua Nhap Du’ nếu
đơn đặt hàng đó chưa nhập đủ :

produce watch vw_DonDH_DaNhapDu a choose SoDH, DaNhapDu = case WHEN TongSLDat=TongSLNhap then ‘Da nhap du’ ELSE ‘Chua nhap du’ goal FROM vw_DonDH_TongSLDatNhap choice * FROM vw_DonDH_DaNhapDu

4. Tạo view vw_TongNhap gồm (NamThang, MaVtu và TongSLNhap) dùng
để thống kê số lượng nhập của các vật tư trong từng năm tháng tương ứng.
(không sử dụng tồn kho) :

create view vw_TongNhap ( NamThang, MaVTu, TongSLNhap ) vitamin a blue-ribbon convert ( char ( six ), NgayNhap,112 ), MaVTu, sum ( SLNhap ) FROM PNHAP PN inner connect CTPNHAP CTPN along PN.SoPN=CTPN group by change ( char ( six ), NgayNhap,112 ), MaVTu choice * FROM vw_TongNhap

5. Tạo view vw_TongXuat gồm (NamThang, MaVTu và TongSLXuat) dùng
để thống kê SL xuất của vật tư trong từng năm tháng tương ứng.(không sử
dụng TONKHO) :

make position vw_TongXuat ( NamThang, MaVatTu, TongSLXuat ) equally blue-ribbon change ( char ( six ), NgayXuat,112 ), MaVTu, union ( SLXuat ) FROM PXUAT post exchange inner connect CTPXUAT CTPX on PX.SoPX=CTPX group by convert ( charwoman ( six ), NgayXuat,112 ), MaVTu choice * FROM vw_TongXuat create view vw_truc_TG deoxyadenosine monophosphate choice commute ( VARCHAR ( ten ), NgayNhap,105 ) arsenic NgayThang, MaVTu, union ( SLNhap ) angstrom TongNhap, zero a TongXuat FROM PNHAP PN inner join CTPNHAP CTPN on PN.SoPN=CTPN group by NgayNhap, MaVTu union blue-ribbon convert ( VARCHAR ( ten ), NgayXuat,105 ), MaVTu, zero deoxyadenosine monophosphate TongXuat, summarize ( SLXuat ) adenine TongNhap FROM PXUAT post exchange inner union CTPXUAT CTPX along PX.SoPX=CTPX group aside NgayXuat, MaVTu choice NgayThang, MaVTu, union ( TongNhap ) equally TongNhap, sum ( TongXuat ) deoxyadenosine monophosphate TongXuat FROM vw_truc_TG group aside NgayThang, MaVTu arrange by NgayThang

7. Cho biết tình hình nhập và đặt hàng :

choose DH, CTDONDH, TenVTu, sum ( SLDat ) deoxyadenosine monophosphate SLDat, total ( SLNhap ) american samoa SLNhap FROM DONDH DH left articulation ( PNHAP PN inside join CTPNHAP CTPN on PN.SoPN=CTPN ) on DH.SoDH=PN leave connect CTDONDH along DH.SoDH=CTDONDH inner join VATTU on CTDONDH.MaVTu=VATTU group aside DH, CTDONDH, TenVTu

8. Thống kê tình hình đặt hàng :

blue-ribbon NgayDH, CTDH, TenVTu, sum ( SLDat ) deoxyadenosine monophosphate TongSLDat FROM DONDH DH inner join CTDONDH CTDH on DH.SoDH=CTDH inner join VATTU vermont on CTDH.MaVTu=VT group aside NgayDH, CTDH, TenVTu

9. Thống kê tình hình nhập hàng :

choose NgayNhap, CTPN, TenVTu, sum ( SLNhap ) deoxyadenosine monophosphate TongSLNhap FROM PNHAP PN inside join CTPNHAP CTPN on PN.SoPN=CTPN inner articulation VATTU vermont on CTPN.MaVTu=VT group aside NgayNhap, CTPN, TenVTu

10. Thống kê những đơn đặt hàng chưa nhập đủ số lượng :

choice distinct SoDH FROM vw_DonDH_MaVTu_TongSLNhap WHERE SLDat > TongSLDaNhap

V, Bài Tập PROCEDURE :

1. Xây dựng thủ tục tính SL đặt hàng với tên

Spud_DonDH_TinhSLDat với 2 tham số vào là SoHD, MaVTu và 1 tham số
ra là SL đặt của mỗi vật tư trong 1 số đặt hàng :

create procedure Spud_DonDH_TinhSLDat @ so charwoman ( four ), @ master of arts char ( four ), @ shining path INT output arsenic choose @ shining path = SLDat FROM CTDONDH WHERE SoDH = @ indeed AND MaVTu = @ milliampere move declare @ radium INT carry through Spud_DonDH_TinhSLDat ‘D001 ‘, ‘DD02 ‘, @ right ascension output print @ right ascension

choose * FROM CTDONDH

2. Xây dựng thủ tục tính tổng số lượng đã nhập hàng với tên
Spud_PNHAP_TinhTongSLNHang với 2 tham số vào là SoHD, MaVTu và 1
tham số là ra là Tổng số lượng hàng của một vật tư trong một số đặt hàng :

create routine Spud_PNHAP_TinhTongSLNHang @ PN char ( four ), @ ma char ( four ), @ Tong INT output ampere blue-ribbon @ Tong =SUM ( SLNhap ) FROM CTPNHAP WHERE SoPN = @ PN AND MaVTu = @ massachusetts go declare @ ra INT execute Spud_PNHAP_TinhTongSLNHang ‘N001 ‘, ‘DD01 ‘, @ radium output print @ ra choose * FROM CTPNHAP

3. Xây dựng thủ tục tính số lượng tồn kho cuối kỳ của 1 vật tư với tên
Spud_TonKho_TinhTonCuoi với 2 tham số vào là NamThang, MaVTu và 1
tham số ra là số lượng cuối kỳ của một vật tư trong năm tháng truyền vào :

produce routine Spud_TonKho_TinhTonCuoi @ national trust char ( six ), @ master of arts char ( four ), @ SLC INT output deoxyadenosine monophosphate

BEGIN

print ‘Khong xoa duoc six milliampere tub tu nay colorado trong CTDONDH’ return conclusion IF exist ( choose * FROM CTPNHAP WHERE MaVTu = @ MaV ) begin print ‘Khong xoa duoc six massachusetts vat tu nay conscientious objector trong CTPNHAP’ return end IF exist ( blue-ribbon * FROM CTPXUAT WHERE MaVTu = @ MaV ) get down mark ‘Khong xoa duoc united states virgin islands master of arts vat tu nay cobalt trong CTPXUAT’ reelect end IF exist ( blue-ribbon * FROM TONKHO WHERE MaVTu = @ MaV ) begin print ‘Khong xoa duoc six milliampere tub tu nay cobalt trong TONKHO’ return end erase FROM VATTU WHERE MaVTu = @ MaV execute Spud_VatTu_Xoa ‘TV21 ‘

6. Xây dựng thủ tục sửa đổi vật tư trong bảng VATTU với tên
Spud_VatTu_Sua với 4 tham số vào chính là giá trị cần thay đổi của các cột
trong bảng VATTU. Thủ tục chỉ cần thực hiện lệnh UPDATE SET với các
giá trị tương ứng :

create routine Spud_VatTu_Sua @ MaV char ( four ), @ TenV VARCHAR ( hundred ), @ DVT VARCHAR ( ten ), @ platinum very deoxyadenosine monophosphate update VATTU typeset TenVTu = @ TenV, DVTinh = @ DVT, PhanTram = @ platinum WHERE MaVTu = @ MaV execute Spud_VatTu_Sua ‘DD01 ‘, ‘Dau videodisk ‘, ‘Chiec ‘, blue-ribbon * FROM VATTU

7. Xây dựng thủ tục liệt kê các cột dữ liệu trong bảng VATTU với tên
Spud_VatTu_BCDSach. Thủ tục này không có tham số. Hành động duy nhất
là câu lệnh truy vấn SELECT * FROM VATTU sắp xếp với TenVTu tăng
dần :
SELECT * FROM VATTU

produce routine Spud_VatTu_BCDSach a blue-ribbon * FROM VATTU rate by TenVTu go perform Spud_VatTu_BCDSach

8. Xây dựng thủ tục liệt kê các cột bên trong bảng TONKHO có thêm cột
TenVTu trong bảng VATTU với tên Spud_TonKho_BCTonKho có tham số
vào là NamThang muốn lọc dữ liệu :
SELECT * FROM TONKHO

create procedure Spud_TonKho_BCTonKho @ national trust charwoman ( six ) arsenic blue-ribbon TONKHO, TONKHO, VATTU, TONKHO, TONKHO, TONKHO, TONKHO FROM TONKHO inner articulation VATTU on TONKHO = VATTU WHERE TONKHO = @ national trust go execute Spud_TonKho_BCTonKho ‘200201 ‘

9. Xây dựng thủ tục liệt kê các cột bên trong PXUAT và CTXUAT có thêm
cột TenVTu trong bảng VATTU với tên Spud_PXuat_BCPXuat có tham số
vào là SoPX muốn lọc dữ liệu, có giá trị mặc định là NULL. Nếu lúc gọi thực
hiện thủ tục mà không truyền giá trị SoPX vào thì thủ tục sẽ liệt kê tất cả các
phiếu xuất có trong bảng PXUAT :
SELECT * FROM PXUAT
SELECT * FROM CTPXUAT

choice PXUAT, PXUAT, PXUAT, CTPXUAT, VATTU, CTPXUAT, CTPXUAT FROM PXUAT inner join CTPXUAT along PXUAT = CTPXUAT inner join VATTU along CTPXUAT = VATTU produce procedure Spud_PXuat_BCPXuat @ indeed char ( four ) = null ampere IF @ therefore embody null choose PXUAT, PXUAT, PXUAT, CTPXUAT, VATTU, CTPXUAT, CTPXUAT FROM PXUAT inner union CTPXUAT on PXUAT = CTPXUAT inner join VATTU on CTPXUAT = VATTU @ sol charwoman ( four ) arsenic IF exist ( choose SoDH FROM PNHAP WHERE SoDH = @ so ) begin print ‘Khong xoa duoc six SoDH nay conscientious objector trong PNHAP’ return end ELSE begin IF exist ( choose SoDH FROM CTDONDH WHERE SoDH = @ thus ) delete FROM CTDONDH WHERE SoDH = @ therefore IF exist ( choose SoDH FROM DONDH WHERE SoDH = @ so ) delete FROM DONDH WHERE SoDH = @ therefore end execute Spud_DonDH_Xoa ‘D001’ execute Spud_DonDH_Xoa ‘D008 ‘

12. Xây dựng thủ tục sửa đổi dữ liệu trong DONDH với tên
Spud_DonDH_Sua gồm 3 tham số vào chính là các giá trị cần thanh đổi của
các cột SoDH, MaNhaCC, NgayDH. Kiểm tra ràng buộc dữ liệu trước khi
thực hiện lệnh UPDATE SET. (MaNhaCC phải có trong NHACC, NgayDH
phải trước NgayNhap nếu đơn đặt hàng đã được nhập về rồi.) :

create procedure Spud_DonDH_Sua @ SoDH char ( four ), @ man char ( four ), @ NgayDat DATETIME equally IF not exist ( choose * FROM NHACC WHERE MaNhaCC = @ serviceman ) begin photographic print ‘ master of arts nha cung hood khong droppings ‘ return conclusion IF @ NgayDat > ( blue-ribbon min ( NgayNhap ) FROM PNHAP WHERE SoDH = @ SoDH ) get down photographic print ‘Ngay digital audiotape hang phai truoc ngay nhap hang ‘ revert end update DONDH bent MaNhaCC = @ valet, NgayDH = @ NgayDat WHERE SoDH = @ SoDH

13. Xây dựng thủ tục thêm mới dữ liệu vào CTDONDH với tên
Spud_CTDonDH_Them gồm 3 tham số vào chính là giá trị cần thay đổi của
các cột trong bảng DONDH là SoDH, MaVTu và SLDat. Kiểm tra các ràng
buộc dữ liệu phải hợp lệ trước khi thực hiện lệnh INSERT INTO (SoDh phải
có bên DONDH, MaVTu phải có bên VATTU). SoDH và MaVTu phải duy
nhất trong bảng CTDONDH
14. Xây dựng thủ tục xoá CTDONDH với tên Spud_CTDonDH_Xoa gồm 2
tham số vào chính là SoDH và MaVTu cần xoá. Kiểm tra ràng buộc dữ liệu
trước khi thực hiện lệnh DELETE. SoDH và MaVTu này phải chưa được
nhập vào trong các bảng liên quan PNHAP và CTPNHAP :
15. Xây dựng thủ tục sửa đổi dữ liệu trong CTDONDH với tên
Spud_CTDonDH_Sua gồm 3 tham số vào chính là giá trị cần thay đổi của
các cột trong CTDONDH : SoDH, MaVTu và SLDat. Kiểm tra các ràng
buộc dữ liệu phải hợp lệ trước khi thực hiện lệnh UPDATE SET. SoDH và
MaVTu phải có bên CTDONDH. SoDH mới phải >= Tổng số lượng đã nhập
hàng (nếu đã có nhập hàng) :

make operation Pro_VatTu @ Loai char ( one ), @ MaV char ( four ) = nothing, @ TenV VARCHAR ( hundred ) = null, @ DVT VARCHAR ( ten ) = null, @ platinum real = nothing vitamin a IF @ Loai = ‘D’ IF not exist ( SELECTFROM CTPNHAP WHERE MaVTu = @ MaV ) AND not exist ( SELECTFROM CTPXUAT WHERE MaVTu = @ MaV ) AND not exist ( SELECTFROM TONKHO WHERE MaVTu = @ MaV ) AND not exist ( SELECTFROM CTDONDH WHERE MaVTu = @ MaV ) edit FROM VATTU WHERE MaVTu = @ MaV ELSE print ‘ Khong xoa duoc six master of arts vat tu conscientious objector lien quan den cac bang khac ‘ IF @ Loai = ‘ I’ IF not exist ( choice * FROM VATTU WHERE MaVTu = @ MaV ) AND ( @ platinum > = zero AND @ platinum < = hundred ) insert INTO VATTU prize ( @ MaV, @ TenV, @ DVT, @ platinum ) ELSE photographic print ' Khong them duoc united states virgin islands trung ma vat tu ' IF @ Loai = ' U' IF not exist ( choose * FROM VATTU WHERE MaVTu = @ MaV ) AND ( @ platinum > =0 AND @ platinum < = hundred ) update VATTU hardened MaVTu = @ MaV, TenVTu = @ TenV, DVTinh = @ DVT, PhanTram = @ platinum WHERE MaVTu = @ MaV ELSE print ' Khong cho phep sua six cobalt lien quan den cac knock khac ' become blue-ribbon * FROM TONKHO blue-ribbon * FROM CTPNHAP blue-ribbon * FROM CTPXUAT choose * FROM CTDONDH Pro_VatTu ' one ', 'DD01 ', 'Dau videodisk TQ ', 'Bo ', Pro_VatTu 'D ', 'DD01 ', 'Dau videodisk TQ ', 'Bo ', Pro_VatTu ' uracil ', 'DD01 ', 'Dau videodisk TQ ', 'Bo ', execute Pro_VatTu 'D ', 'DD01 '

VI, Bài Tập TRIGGER :

1. Xây dựng trigger khi thêm mới dữ liệu vào bảng PNHAP với tên

TG_PNhap_Them. Trong đó cần kiểm tra các ràng buộc dữ liệu phải

hợp lệ : Ngày nhập hàng phải sau ngày đặt hàng

create gun trigger TG_PNhap_Them on PNHAP FOR slip in a announce @ NgayN DATETIME, @ NgayDH DATETIME, @ SoDH char ( four ) choice @ NgayN = NgayNhap, @ SoDH = SoDH FROM PNHAP choose @ NgayDH = NgayDH FROM DONDH WHERE SoDH = @ SoDH IF @ NgayN < @ NgayDH begin mark ' Ngay nhap phai sau ngay dat' rollback transaction end choose * FROM DONDH

cut-in INTO PNHAP value ( ‘N005 ‘, ‘D001 ‘, ‘2002/01/16 ‘ )

2. Xây dựng trigger khi thêm mới dữ liệu vào bảng CTPNHAP với

tên TG_CTPNhap_Them. Trong đó cần kiểm tra các ràng buộc dữ liệu phải

hợp lệ : số lượng nhập hàng <= (số lượng đặt – tổng số lượng đã nhập vào
trước đó) :

produce gun trigger TG_CTPNhap_Them along CTPNHAP FOR insert a declare @ SLN INT, @ SLD INT, @ TongN INT, @ SoDH char ( four ) declare @ MaV charwoman ( four ), @ SoPN char ( four )

blue-ribbon @ SoDH = SoDH FROM PNHAP WHERE SoPN = ( choice SoPN FROM insert )


Có thể bạn quan tâm
© Copyright 2008 - 2016 Dịch Vụ Bách khoa Sửa Chữa Chuyên nghiệp.
Alternate Text Gọi ngay