Viết trigger khi thay đổi mã cho một phòng thì các nhân viên và dự án thuộc phòng ban đó cũng phải thay đổi theo
A. Tất cả các phương án đều đúng
B. CREATE TRIGGER UpdateMaPhong ON PHONGBAN FOR UPDATE AS BEGIN IF UPDATE( MaPhong ) BEGIN DECLARE @MaPhgCu nvarchar(9), @MaPhgMoi nvarchar(9)
SELECT @MaPhgCu = MaPB FROM DELETED SELECT @MaPhgMoi = MaPB FROM INSERTED
If ( EXISTS (select MaPB from DUAN Where MaPB = @MaPhgCu) ) UPDATE DUAN set MaPB = @MaPhgMoi WHERE MaPB = @MaPhgCu END END
C. CREATE TRIGGER UpdateMaPhong ON PHONGBAN FOR UPDATE AS BEGIN IF UPDATE( MaPhong ) BEGIN DECLARE @MaPhgCu nvarchar(9), @MaPhgMoi nvarchar(9)
SELECT @MaPhgCu = MaPB FROM DELETED
SELECT @MaPhgMoi = MaPB FROM INSERTED
If ( EXISTS (select MaPB from NHANVIEN Where MaPB= @MaPhgCu) ) UPDATE NHANVIEN SET MaPB = @MaPhgMoi WHERE MaPB = @MaPhgCu END END
D. CREATE TRIGGER UpdateMaPhong ON PHONGBAN FOR UPDATE AS BEGIN IF UPDATE( MaPhong ) BEGIN DECLARE @MaPhgCu nvarchar(9), @MaPhgMoi nvarchar(9) SELECT @MaPhgCu = MaPB FROM DELETED
SELECT @MaPhgMoi = MaPB FROM INSERTED
If ( EXISTS (select MaPB from NHANVIEN Where MaPB= @MaPhgCu) ) UPDATE NHANVIEN SET MaPB = @MaPhgMoi WHERE MaPB = @MaPhgCu
If ( EXISTS (select MaPB from DUAN Where MaPB = @MaPhgCu) ) UPDATE DUAN set MaPB = @MaPhgMoi WHERE MaPB = @MaPhgCu END END
Viết trigger để kiểm soát ngày làm gia dự của nhân viên phải sau ngày dự án đó bắt đầu
A. Không có phương án nào đúng
B. CREATE TRIGGER CHECK_NGAY_THAM_GIA_DA ON PHANCONG AFTER UPDATE, INSERT AS IF UPDATE(NgayThamGia) --Kiểm tra việc cập nhật trên cột BEGIN
SET @NgTG = (SELECT NgLamDA FROM INSERTED)
SET @NgBD = (SELECT NgayBD FROM DEAN, INSERTED WHERE DEAN.MaDA = INSERTED.MaDA) IF ( @NgTG < @NgBD ) BEGIN raiserror(N'Ngày Tham gia phải sau ngày Bắt đầu',16,1)
END END
C. CREATE TRIGGER CHECK_NGAY_THAM_GIA_DA ON PHANCONG AFTER UPDATE, INSERT AS IF UPDATE(NgayThamGia) --Kiểm tra việc cập nhật trên cột BEGIN declare @NgTG datetime, @NgBD datetime SET @NgTG = (SELECT NgLamDA FROM INSERTED) SET @NgBD = (SELECT NgayBD FROM DEAN, INSERTED
END END
D. CREATE TRIGGER CHECK_NGAY_THAM_GIA_DA ON PHANCONG AFTER UPDATE, INSERT AS IF UPDATE(NgayThamGia) --Kiểm tra việc cập nhật trên cột BEGIN declare @NgTG datetime, @NgBD datetime SET @NgTG = (SELECT NgLamDA FROM INSERTED) SET @NgBD = (SELECT NgayBD FROM DEAN, INSERTED WHERE DEAN.MaDA = INSERTED.MaDA) IF ( @NgTG < @NgBD ) BEGIN raiserror(N'Ngày Tham gia phải sau ngày Bắt đầu',16,1)
Giả sử có 1 CSDL chứa thông tin của các công ty cùng với mã vùng (zip code). Hiện tại CSDL chỉ mới chứa dữ liệu của các công ty với 5 mã vùng khác nhau. Số công ty trong mỗi mã vùng có thể từ 10 đến 5000. Trong tương lai sẽ có thêm nhiều công ty với các mã vùng mới khá Bạn cần tạo 1 truy vấn để xem thông tin từ CSDL. Việc thực thi truy vấn không được ảnh hưởng đến số công ty được trả về. Truy vấn được tạo ra cần thông nhất và làm tối thiểu việc phải bảo trì sửa đổi truy vấn này trong tương lai. Bạn nên làm gi?
A. Tạo 1 view cho mỗi mã vùng
B. Chia bảng thành nhiều bảng, mỗi bảng chứa 1 mã vùng. Sau đó xây dựng 1 view kết các bảng này lại sao cho dữ liệu có thể vẫn được xem như chỉ từ 1 bảng
C. Tạo 1 thủ tục (stored procedure) yêu cầu mã vùng như tham số đầu vào, bao gồm tuỳ chọn WITH RECOMPILE khi tạo thủ tục
Đâu là thủ tục để cho danh sách tên các Nhân viên đã KHÔNG tham gia bán hàng trong một ngày nào đó
A. CREATE PROC spTenNV(datetime @d) As BEGIN Select sHoten From tblNHANVIEN Where sMaNV in (Select sMaNV from tblHOADON Where dNgayLap = @d) END
B. CREATE PROC spTenNV(datetime @d) As BEGIN Select sHoten From tblNHANVIEN Where sMaNV not in (Select sMaNV from tblHOADON Where dNgayLap = @d) END
C. CREATE PROC spTenNV As BEGIN Select sHoten From tblNHANVIEN Where sMaNV in (Select sMaNV from tblHOADON) END
D. CREATE PROC spTenNV As BEGIN Declare datetime @d Select sHoten From tblNHANVIEN Where sMaNV in (Select sMaNV from tblHOADON Where dNgayLap = @d) END
DONATE
Để giúp chúng tôi phát triển sản phẩm tốt hơn, đạt kết quả học tập cao hơn