Viết câu lệnh SQL để tạo CSDL có tên QLNV và tạo ra các bảng-- Bảng PHONG CREATE TABLE PHONG MAPHONG CHAR3PRIMARY KEY, TENPHONG NVARCHAR ,40 DIACHI NVARCHAR ,50 TEL CHAR 10 ; -- Bản
Trang 1ĐẠI HỌC DUY TÂN KHOA CÔNG NGHỆ THÔNG TIN
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
ĐỒ ÁN NHÓM
ĐỀ TÀI: PROJECT 1 GVHD: Nguyễn Dũng LỚP: IS 401 F
Nhóm thực hiện: Thái Bá Hưng
05/2024
Trang 2Câu 1 Viết câu lệnh SQL để tạo CSDL có tên QLNV và tạo ra các bảng
Bảng PHONG
CREATE TABLE PHONG (
MAPHONG CHAR(3)PRIMARY KEY,
TENPHONG NVARCHAR( ),40
DIACHI NVARCHAR( ),50
TEL CHAR( )10
);
Bảng DMNN
CREATE TABLE DMNN (
MANN CHAR(2)PRIMARY KEY,
TENNN NVARCHAR(20)
);
Bảng NHANVIEN
CREATE TABLE NHANVIEN (
MANV CHAR(5)PRIMARY KEY,
HOTEN NVARCHAR(40),
GIOITINH BIT,
NGAYSINH DATETIME,
HESOLUONG FLOAT,
MAPHONG CHAR( ),3
NGAYCONG INT,
NGAYBC DATETIME,
MATKHAU CHAR( ),20
FOREIGN KEY (MAPHONG)REFERENCES PHONG(MAPHONG) );
Bảng TDNN
CREATE TABLE TDNN (
MANV CHAR( ),5
MANN CHAR( ),2
TDO CHAR( ),1
PRIMARY KEY (MANV, MANN),
FOREIGN KEY (MANV)REFERENCES NHANVIEN(MANV), FOREIGN KEY (MANN)REFERENCES DMNN(MANN)
);
Trang 3Câu 2 Viết các thủ tục để nhập dữ liệu và dùng thủ tục vừa viết để tạo nhập dữ liệu vào các bảng
CREATE PROCEDURE InsertOrUpdate_PHONG
@MAPHONG VARCHAR(10),
@TENPHONG NVARCHAR(100),
@DIACHI NVARCHAR(200),
@TEL NVARCHAR( )20
AS
BEGIN
SET NOCOUNT ON;
IFEXISTS(SELECT FROM 1 PHONG WHERE MAPHONG @MAPHONG= )
BEGIN
UPDATE PHONG
SET TENPHONG @TENPHONG= ,
DIACHI @DIACHI= ,
TEL @TEL=
WHERE MAPHONG @MAPHONG= ;
END
ELSE
BEGIN
INSERT INTO PHONG(MAPHONG, TENPHONG DIACHI TEL, , )
VALUES (@MAPHONG, @TENPHONG @DIACHI @TEL, , );
END
END;
CREATE PROCEDURE Insert_PHONG
AS
BEGIN
SET NOCOUNT ON;
EXECUTE InsertOrUpdate_PHONG'HCA',N'Hành chính tổ hợp',N'123, Láng Hạ, Đống Đa,
Hà Nội','048585793';
EXECUTE InsertOrUpdate_PHONG'KDA',N'Kinh Doanh',N'123, Láng Hạ, Đống Đa, Hà Nội' '048574943', ;
EXECUTE InsertOrUpdate_PHONG'KTA',N'Kỹ thuật',N'123, Láng Hạ, Đống Đa, Hà Nội', '049480485';
EXECUTE InsertOrUpdate_PHONG'QTA',N'Quản trị',N'123, Láng Hạ, Đống Đa, Hà Nội', '048508585';
END;
CREATE PROCEDURE InsertOrUpdate_DMNN
@MANN VARCHAR( ),2
@TENNN NVARCHAR(20)
AS
BEGIN
SET NOCOUNT ON;
IFEXISTS(SELECT FROM 1 DMNN WHERE MANN @MANN= )
Trang 4BEGIN
UPDATE DMNN
SET TENNN @TENNN=
WHERE MANN @MANN= ;
END
ELSE
BEGIN
INSERT INTO DMNN(MANN, TENNN)
VALUES (@MANN, @TENNN);
END
END;
EXECUTE InsertOrUpdate_DMNN '01' N'Anh', ;
EXECUTE InsertOrUpdate_DMNN '02' N'Nga', ;
EXECUTE InsertOrUpdate_DMNN '03' N'Pháp', ;
EXECUTE InsertOrUpdate_DMNN '04' N'Nhật', ;
EXECUTE InsertOrUpdate_DMNN '05',N'Trung Quốc';
EXECUTE InsertOrUpdate_DMNN '06',N'Hàn Quốc';
CREATE PROCEDURE InsertOrUpdate_NHANVIEN
@MANV CHAR(5),
@HOTEN NVARCHAR(40),
@GIOITINH BIT,
@NGAYSINH DATETIME,
@HESOLUONG FLOAT,
@MAPHONG CHAR( ),3
@NGAYCONG INT,
@NGAYBC DATETIME,
@MATKHAU CHAR( )20
AS
BEGIN
SET NOCOUNT ON;
IFEXISTS(SELECT FROM 1 NHANVIEN WHERE MANV @MANV= ) BEGIN
UPDATE NHANVIEN
SET HOTEN @HOTEN= ,
GIOITINH @GIOITINH= ,
NGAYSINH @NGAYSINH= ,
HESOLUONG @HESOLUONG= ,
MAPHONG @MAPHONG= ,
NGAYCONG @NGAYCONG= ,
NGAYBC @NGAYBC= ,
MATKHAU @MATKHAU=
WHERE MANV @MANV= ;
END
ELSE
Trang 5BEGIN
INSERT INTO NHANVIEN(MANV, HOTEN GIOITINH NGAYSINH HESOLUONG , , , , MAPHONG, NGAYCONG, NGAYBC, MATKHAU)
VALUES (@MANV, @HOTEN @GIOITINH @NGAYSINH @HESOLUONG , , , ,
@MAPHONG, @NGAYCONG, @NGAYBC, @MATKHAU);
END
END;
EXECUTE InsertOrUpdate_NHANVIEN 'HC001',N'Nguyễn Thị Hà', 0 ,'1950-08-27', 2.34, 'HCA', 30 ,'1975-02-08',NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'HC002',N'Trần Văn Nam', 1 ,'1975-12-06', 4.0,'HCA',
15,'1997-08-06',NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'HC003',N'Nguyễn Thanh Huyền', ,'1978-03-07', 5.7, 'HCA', 29 ,'1999-09-24',NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'KD001',N'Lê Tuyết Anh', ,'1977-03-02', 6.4,'KDA',
30,'2001-10-02',NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'KD002',N'Nguyễn Anh Tú', 1 ,'1942-04-07', 7.2, 'KDA', 30 ,'1999-09-24',NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'KD003',N'Phạm An Thái', ,'1977-09-05', 3.4,'KDA',
28,'1999-09-24',NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'KD004',N'Lê Văn Hải', ,'1976-02-01', 2.34,'KDA',
27,'1997-06-08',NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'KD005',N'Nguyễn Phương Minh', 1 ,'1980-02-01', 4.0, 'KDA', 26 ,'2001-10-02',NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'KT001',N'Trần Đình Khâm', , 1 '1981-02-12', 5.7, 'KTA', 28 ,'2005-01-01', NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'KT002',N'Nguyễn Mạnh Hùng', ,'1980-08-16', 6.4, 'KTA', 17 ,'2005-01-01', NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'KT003',N'Phạm Thanh Sơn', , 1 '1984-08-20', 7.2, 'KTA', 30 ,'2005-01-01', NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'KT004',N'Vũ Thị Hoài', , 0 '1980-05-12', 3.4,'KTA',
30,'2001-10-02',NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'KT005',N'Nguyễn Thu Lan', , 0 '1977-05-10', 2.34, 'KTA', 30 ,'2001-10-02', NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'KT006',N'Trần Hoài Nam', ,'1978-02-07', 4.0,'KTA',
30,'1997-06-08',NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'KT007',N'Hoàng Nam Sơn', , 1 '1940-03-12', 5.7, 'KTA', 30 ,'1965-07-02', NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'KT008',N'Lê Thu Trang', ,'1950-06-07', 6.4,'KTA',
30,'1968-08-02',NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'KT009',N'Khúc Nam Hải', ,'1980-07-22', 7.2,'KTA',
30,'2005-01-01',NULL;
EXECUTE InsertOrUpdate_NHANVIEN 'KT010',N'Phùng Trung Dũng', ,'1978-08-28', 3.4, 'KTA', 30 ,'1999-09-24', NULL;
CREATE PROCEDURE InsertOrUpdate_TDNN
Trang 6@MANV CHAR(5),
@MANN CHAR(2),
@TDO CHAR(1)
AS
BEGIN
SET NOCOUNT ON;
IFEXISTS(SELECT FROM 1 TDNN WHERE MANV @MANV= ) BEGIN
UPDATE TDNN
SET MANN @MANN= ,
TDO @TDO=
WHERE MANV @MANV= ;
END
ELSE
BEGIN
INSERT INTO TDNN(MANV, MANN TDO, )
VALUES (@MANV, @MANN @TDO, );
END
END;
EXEC InsertOrUpdate_TDNN 'HC001' '01' 'A', , ;
EXEC InsertOrUpdate_TDNN 'HC001' '02' 'B', , ;
EXEC InsertOrUpdate_TDNN 'HC002' '01' 'C', , ;
EXEC InsertOrUpdate_TDNN 'HC002' '03' 'C', , ;
EXEC InsertOrUpdate_TDNN 'HC003' '01' 'D', , ;
EXEC InsertOrUpdate_TDNN 'KD001' '01' 'C', , ;
EXEC InsertOrUpdate_TDNN 'KD001' '02' 'B', , ;
EXEC InsertOrUpdate_TDNN 'KD002' '01' 'D', , ;
EXEC InsertOrUpdate_TDNN 'KD002' '02' 'A', , ;
EXEC InsertOrUpdate_TDNN 'KD003' '01' 'B', , ;
EXEC InsertOrUpdate_TDNN 'KD003' '02' 'C', , ;
EXEC InsertOrUpdate_TDNN 'KD004' '01' 'C', , ;
EXEC InsertOrUpdate_TDNN 'KD004' '04' 'A', , ;
EXEC InsertOrUpdate_TDNN 'KD004' '05' 'A', , ;
EXEC InsertOrUpdate_TDNN 'KD005' '01' 'B', , ;
EXEC InsertOrUpdate_TDNN 'KD005' '02' 'D', , ;
EXEC InsertOrUpdate_TDNN 'KD005' '03' 'B', , ;
EXEC InsertOrUpdate_TDNN 'KD005' '04' 'B', , ;
EXEC InsertOrUpdate_TDNN 'KT001' '01' 'D', , ;
EXEC InsertOrUpdate_TDNN 'KT001' '04' 'E', , ;
EXEC InsertOrUpdate_TDNN 'KT002' '01' 'C', , ;
EXEC InsertOrUpdate_TDNN 'KT002' '02' 'B', , ;
EXEC InsertOrUpdate_TDNN 'KT003' '01' 'D', , ;
EXEC InsertOrUpdate_TDNN 'KT003' '03' 'C', , ;
EXEC InsertOrUpdate_TDNN 'KT004' '01' 'D', , ;
Trang 7EXEC InsertOrUpdate_TDNN 'KT005' '01' 'C', , ;
Câu 3 Viết thủ tục in ra thông tin chi tiết của nhân viên dựa vào mã nhân viên gồm: Mã
nhân viên, tên nhân viên, tuổi, giới tính (nam, nữ)
CREATE PROCEDURE CAU_3
@MANV VARCHAR( )10
AS
BEGIN
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION;
SELECT MANV HOTEN, ,DATEDIFF(YEAR, NGAYSINH ,GETDATE())AS Tuoi, CASE
WHEN GIOITINH 1 = THEN 'Nam'
WHEN GIOITINH 0 = THEN N'Nữ'
END AS GioiTinh
FROM NHANVIEN
WHERE MANV = @MANV;
COMMIT;
END;
EXECUTE CAU_3 @MANV ='HC001';
Câu 4 Viết thủ tục in ra thông tin của nhân viên như câu 3 dựa vào họ của nhân viên
CREATE PROCEDURE CAU_4
@LastName NVARCHAR( )40
AS
BEGIN
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION;
SELECT
NHANVIEN MANV AS 'Mã nhân viên',
NHANVIEN HOTEN AS 'Tên nhân viên',
DATEDIFF YEAR( , NHANVIEN.NGAYSINH,GETDATE()) AS 'Tuổi',
CASE
WHEN NHANVIEN GIOITINH 1 = THEN'Nam'
WHEN NHANVIEN GIOITINH 0 = THENN'Nữ'
ELSE'Không xác định'
END AS'Giới tính'
FROM
NHANVIEN
WHERE
NHANVIEN HOTEN LIKE'%'+ @LastName +'%';
Trang 8END;
EXECUTE CAU_4 @LastName =N'Nguyễn';
Câu 5 Viết thủ tục in ra hai nhân viên nữ và hai nhân viên nam có thời gian công tác ở
công ty lâu nhất
CREATE PROCEDURE CAU_5
AS
BEGIN
BEGIN TRANSACTION;
DECLARE @FemaleCount INT = ; 2
DECLARE @MaleCount INT 2= ;
Nhân viên nữ có thời gian công tác lâu nhất
SELECT TOP (@FemaleCount)
NHANVIEN MANV AS 'Mã nhân viên',
NHANVIEN HOTEN AS 'Tên nhân viên',
DATEDIFF YEAR( , NHANVIEN.NGAYBC,GETDATE()) AS 'Thời gian công tác (năm)', N'Nữ' AS 'Giới tính'
FROM
NHANVIEN
WHERE
NHANVIEN GIOITINH 0 =
ORDER BY
DATEDIFF YEAR( , NHANVIEN.NGAYBC,GETDATE()) DESC;
Nhân viên nam có thời gian công tác lâu nhất
SELECT TOP (@MaleCount)
NHANVIEN MANV AS 'Mã nhân viên',
NHANVIEN HOTEN AS 'Tên nhân viên',
DATEDIFF YEAR( , NHANVIEN.NGAYBC,GETDATE()) AS 'Thời gian công tác (năm)', 'Nam'AS'Giới tính'
FROM
NHANVIEN
WHERE
NHANVIEN GIOITINH 1 =
ORDER BY
DATEDIFF YEAR( , NHANVIEN.NGAYBC,GETDATE()) DESC;
COMMIT TRANSACTION;
END;
Trang 9EXECUTE CAU_5;
Câu 6 Viết thủ tục in ra thông tin nhân viên gồm: mã nhân viên, tên nhân viên, tuổi, giới
tính, Lương theo tên của phòng ban
Lương của mỗi nhân viên được tính theo công thức: Lương =LCB*ngày công/số ngày công chuẩn: LCB=1.500.000 Ngày công chuẩn là 26
CREATE PROCEDURE CAU_6
@Tenphong NVARCHAR( )40
AS
BEGIN
BEGIN TRANSACTION;
DECLARE @LCB FLOAT = 1500000.0; Lương cơ bản
DECLARE @Ngaycongchuan INT 26= ; Số ngày công chuẩn
SELECT
NHANVIEN MANV AS 'Mã nhân viên',
NHANVIEN HOTEN AS 'Tên nhân viên',
DATEDIFF YEAR( , NHANVIEN.NGAYSINH,GETDATE()) AS 'Tuổi',
CASE
WHEN NHANVIEN GIOITINH 1 = THEN'Nam'
WHEN NHANVIEN GIOITINH 0 = THENN'Nữ'
ELSE'Không xác định'
END AS'Giới tính',
(@LCB NHANVIEN NGAYCONG @Ngaycongchuan * / )AS 'Lương'
FROM
NHANVIEN
INNER JOIN PHONG ON NHANVIEN MAPHONG PHONG = MAPHONG WHERE
PHONG TENPHONG @Tenphong = ;
COMMIT TRANSACTION;
END;
EXECUTE CAU_6 @Tenphong ='Hành chính tổ hợp';
Câu 7 Viết thủ tục in ra thông tin chi tiết của nhân viên có tuổi năm trong khoảng 25 đến 30 theo
từng phòng ban với mã phòng ban truyền vào
Trang 10CREATE PROCEDURE CAU_7
@MaPhong CHAR(3)
AS
BEGIN
BEGIN TRANSACTION;
DECLARE @TuoiToiThieu INT 25= ;
DECLARE @TuoiToiDa INT = 30;
SELECT
NHANVIEN MANV AS'Ma nhan vien',
NHANVIEN HOTEN AS'Ten nhan vien',
DATEDIFF YEAR( , NHANVIEN.NGAYSINH,GETDATE())AS'Tuoi',
CASE
WHEN NHANVIEN GIOITINH 1 = THEN 'Nam'
WHEN NHANVIEN GIOITINH 0 = THEN N'Nữ'
ELSE 'Khong xac dinh'
END AS 'Gioi tinh'
FROM
NHANVIEN
INNERJOIN PHONG ON NHANVIEN MAPHONG PHONG = MAPHONG
WHERE
PHONG MAPHONG @MaPhong =
ANDDATEDIFF YEAR( , NHANVIEN.NGAYSINH,GETDATE())BETWEEN @TuoiToiThieu AND @TuoiToiDa;
COMMIT TRANSACTION;
END;
EXECUTE CAU_7 @MaPhong ='KTA';
Câu 8 Viết thủ tục thống kê lương trung bình cho mỗi phòng ban: gồm mã phòng ban, tên
phòng ban, lương trinh bình
CREATE PROCEDURE CAU_8
AS
BEGIN
BEGIN TRANSACTION;
DECLARE @LCB FLOAT 1500000.0 = ; Lương cơ bản
DECLARE @Ngaycongchuan INT = 26 ; Số ngày công chuẩn
SELECT
PHONG MAPHONG AS'Mã phòng ban',
Trang 11PHONG TENPHONG AS N'Tên phòng ban',
AVG(@LCB NHANVIEN NGAYCONG @Ngaycongchuan* / ) AS 'Lương trung bình'
FROM
NHANVIEN
INNERJOIN PHONG ON NHANVIEN MAPHONG PHONG = MAPHONG
GROUP BY
PHONG.MAPHONG,
PHONG.TENPHONG;
COMMIT TRANSACTION;
END;
EXECUTE CAU_8;
Câu 9 Viết thủ tục in ra mã ngoại ngữ, tên ngoại ngữ, trình độ cao nhất theo mã nhân viên.
CREATE PROCEDURE CAU_9
@MaNhanVien CHAR(5)
AS
BEGIN
BEGIN TRANSACTION;
SELECT
TDNN MANV AS'Mã nhân viên',
TDNN MANN AS'Mã ngoại ngữ',
DMNN TENNN AS N'Tên ngoại ngữ',
TDNN TDO AS'Trình độ cao nhất'
FROM
TDNN
INNERJOIN DMNN ON TDNN MANN DMNN = MANN
WHERE
TDNN MANV @MaNhanVien = ;
COMMIT TRANSACTION;
END;
EXECUTE CAU_9 @MaNhanVien ='HC001';
Câu 10 Viết thủ tục lọc ra tất cả những nhân viên chưa học ngoại ngữ nào gồm mã nhân viên, tên
nhân viên, tên phòng ban
CREATE PROCEDURE CAU_10
AS
Trang 12BEGIN TRANSACTION;
SELECT
NHANVIEN MANV AS'Mã nhân viên',
NHANVIEN HOTEN ASN'Tên nhân viên',
PHONG TENPHONG AS 'Tên phòng ban'
FROM
NHANVIEN
INNERJOIN PHONG ON NHANVIEN MAPHONG PHONG = MAPHONG
WHERE
NHANVIEN MANV NOT IN(
SELECT MANV FROM TDNN
);
COMMIT TRANSACTION;
END;
EXECUTE CAU_10;
Câu 11 Viết thủ tục in ra những phòng ban gồm mã phòng ban, tên phòng ban và tổng lương
Chỉ in ra những phòng ban có tổng lương >=5000
CREATE PROCEDURE CAU_11
AS
BEGIN
BEGIN TRANSACTION;
DECLARE @LCB INT;
SET @LCB 1500000= ;
SELECT
PHONG MAPHONG AS'Mã phòng ban',
PHONG TENPHONG AS N'Tên phòng ban',
SUM(@LCB NHANVIEN NGAYCONG 26 * / )AS'Tổng lương'
FROM
PHONG
INNERJOIN NHANVIEN ON PHONG MAPHONG NHANVIEN = MAPHONG
GROUP BY
PHONG.MAPHONG,
PHONG.TENPHONG
HAVING
SUM(@LCB NHANVIEN NGAYCONG 26 * / ) >= 5000;
Trang 13COMMIT TRANSACTION;
END;
EXECUTE CAU_11;
Câu 12 Viết thủ tục in ra tất cả các nhân viên có ngày sinh trùng với ngày sinh hiện tại
CREATE PROCEDURE CAU_12 IN RA CÁC NV CÓ NGÀY SINH TRÙNG VỚI NGÀY HIỆN
TẠI AS
BEGIN
BEGIN TRANSACTION;
DECLARE @NgaySinhHienTai DATE;
SET @NgaySinhHienTai =GETDATE();
SELECT
MANV AS 'Mã nhân viên',
HOTEN AS 'Tên nhân viên',
NGAYSINH AS'Ngày sinh'
FROM
NHANVIEN
WHERE
NGAYSINH @NgaySinhHienTai= ;
COMMIT TRANSACTION;
END;
EXECUTE CAU_12;
Câu 13 Viết hàm tạo mã nhân viên tự động dựa vào mã phòng ban và số lượng nhân viên thuộc
phòng ban đó có trong bảng nhân viên
VD: Phòng ban KTA và số nhân viên thuộc phòng ban KTA trong bảng nhân viên đang có là
10 thì mã mới được tạo ra là KT011
CREATE FUNCTION CAU_13 (@MaPhongBan VARCHAR( ))10 RETURNS VARCHAR(20) AS
BEGIN
DECLARE @SoLuongNhanVien INT;
DECLARE @MaNhanVien VARCHAR( );20
Lấy số lượng nhân viên thuộc phòng ban từ bảng nhân viên
Trang 14SELECT @SoLuongNhanVien =COUNT(*)FROM NHANVIEN WHERE MAPHONG =
@MaPhongBan;
Tạo mã nhân viên tự động dựa vào mã phòng ban và số lượng nhân viên
SET @MaNhanVien @MaPhongBan = +'-'+CAST(@SoLuongNhanVien 1 + AS VARCHAR(10)); RETURN @MaNhanVien;
END;
DECLARE @MaNhanVienTaoTuDong VARCHAR( );20
SET @MaNhanVienTaoTuDong dbo= AUTO_MANV('KT010');
Câu 14 Viết hàm tạo mật khẩu từ ngày sinh
CREATE FUNCTION CAU_14 @DOB ( DATE)
RETURNS VARCHAR( )50
AS
BEGIN
DECLARE @Password VARCHAR(50)
DECLARE @Year INT, @Month INT, @Day INT
SELECT @Year =YEAR(@DOB), @Month =MONTH(@DOB), @Day =DAY(@DOB) Tạo mật khẩu từ ngày sinh
SET @Password =REPLACE CONVERT( (VARCHAR( ),10 @DOB 112, ),'-',''
RETURN @Password
END
GO
Cập nhật mật khẩu cho từng nhân viên
UPDATE NHANVIEN
SET MatKhau = dbo CAU_14 NgaySinh ( )
Câu 15 Viết thủ tục tri cập nhật một viên mới tự động cập nhật tất cả các ngoại ngữ cho nhân viên
với trình độ thấp nhất
Câu 16 Viết Trigger ngăn không cho nhập số lượng nhân viên ở phòng ban bất kỳ quá 20
người
CREATE TRIGGER CAU_16
ON NHANVIEN
AFTER INSERT,UPDATE
AS