Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu) và tblCTHOADON (sMaHD, sMaSP, iSLM), tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đâu là thủ tục để cho biết tên các sản phẩm đã được mua hàng trong một ngày nào đó
A. CREATE PROC spTenSP(datetime @d) As BEGIN Select sTenSP From tblSANPHAM as A, tblHOADON as C Where dNgayLap = @d END
B. CREATE PROC spTenSP As BEGIN Declare datetime @d Select sTenSP From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C Where dNgayLap = @d and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD END
C. CREATE PROC spTenSP(datetime @d) As BEGIN Select sTenSP From tblSANPHAM as A, tblCTHOADON Where dNgayLap = @d and A.sMaSP = B.sMaSP END
D. CREATE PROC spTenSP(datetime @d) As BEGIN Select sTenSP From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C Where dNgayLap = @d and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD END
Paul thực hiện lệnh SQL sau:SELECT Customers.name, Customers.ord_id, Orders.ord_dateFROM Customers INNER JOIN OrdersWHERE Customers.cust_id = Orders.cust_idMỗi bảng trong lệnh trên đều chứa 10000 hàng, do đó phải mất nhiều thời gian để thực hiện Để cải thiện việc thực thi truy vấn này, nên dùng đối tượng nào sau đây:
Đoạn mã tạo trigger để cho phép chỉ nhập giá trị Nam hoặc Nữ khi thêm vào bảng NHANVIEN là?
A. CREATE TRIGGER NV_GT ON NHANVIEN INSTEAD OF INSERT As BEGIN declare @Gt as nvarchar(3) select @gt = GT from INSERTED if ( @gt not in ('Nam', N'Nữ') ) Raiserror('Ban nhap sai Gioi tinh',16,10) END
B. CREATE TRIGGER NV_GT ON NHANVIEN INSTEAD OF INSERT As BEGIN declare @Gt as nvarchar(3) select @gt = GT from NHANVIEN if ( @gt not in ('Nam', N'Nữ') ) Raiserror('Ban nhap sai Gioi tinh',16,10) END
C. CREATE TRIGGER NV_GT ON NHANVIEN INSTEAD OF INSERT As BEGIN declare @Gt as nvarchar(3) select @gt = GT from INSERTED if ( @gt in ('Nam', N'Nữ') ) Raiserror('Ban nhap sai Gioi tinh',16,10) END
D. CREATE TRIGGER NV_GT ON NHANVIEN INSTEAD OF DELETE As BEGIN declare @Gt as nvarchar(3) select @gt = GT from INSERTED if ( @gt not in ('Nam', N'Nữ') ) Raiserror('Ban nhap sai Gioi tinh',16,10) END
Bạn là nhà quản trị CSDL SQL. Bạn đang phát triển 1 ứng dụng DB cho phòng kế toán công ty của bạn. Ứng dụng này chứa nhiều modules được tích hợp nhau. Các user thuờng gặp phải deadlock bất kỳ lúc nào một người nào đó thực hiện 1 hàm mà nó cần tích hợp từ nhiều module. Làm thế nào đê giảm thiểu các deadlock này?
A. Bạn cần phải bảo đảm là tất cả các transaction chỉnh sửa dữ liệu các bảng phải theo cùng 1 thứ tự
B. Bạn cần phải bảo đảm là tất cả các transaction chỉnh sửa dữ liệu các bảng phải theo thứ tự ngược nhau
C. Bạn cần phải bảo đảm là tất cả các transaction chỉnh sửa dữ liệu các bảng không theo cùng thứ tự
D. Bạn cần phải bảo đảm là tất cả các transaction chỉnh sửa phù hợp với cách thực thi của công cụ query optimizer
Đâ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
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
Đoạn Trigger nào để thực hiện yêu cầu: Mỗi khi thêm một dòng mới vào bảng tblCTHOADON thì tổng tiền của tblHOADON với mã tương ứng được tăng theo tuỳ theo số lượng và đơn giá được nhập vào
A. CREATE TRIGGER themCTHD ON tblCTHOADON Instead of Insert As Begin Update tblHOADON Set TongTien = TongTien + iSL * fDG Where sMaHD = @soHD End
B. CREATE TRIGGER themCTHD ON tblCTHOADON Instead of Insert As Begin Update tblHOADON Set TongTien = TongTien + iSL * fDG End
C. CREATE TRIGGER themCTHD ON tblHOADON Instead of Insert As Begin Declare int @sl, float @dg, nvarchar(9) @soHD Select @sl = iSL, @dg = fDG, @soHD = sMaHD From insterted
Update tblHOADON Set TongTien = TongTien + @sl * @dg Where sMaHD = @soHD End
D. CREATE TRIGGER themCTHD ON tblCTHOADON Instead of Insert As Begin Declare int @sl, float @dg, nvarchar(9) @soHD Select @sl = iSL, @dg = fDG, @soHD = sMaHD From insterted
Update tblHOADON Set TongTien = TongTien + @sl * @dg Where sMaHD = @soHD End