You are on page 1of 88

HỆ QUẢN TRỊ CSDL

Thành phần nào sau đây thuộc phía Server trong mô hình Client –
Server?
a. OLE DB Application
b. DB Library Application sai
c. Database
d. Network sai
Cấu hình nào sau đây được Windows cung cấp sẵn, dùng làm kết nối
trung gian giữa ứng
dụng và các hệ quản trị CSDL?
a. OLE DB
b. Kết nối mạng trên Server
c. Net-Library
d. ODBC
Có thể đặt mấy cột trong bảng làm khóa chính?
a. Trên 1 cột bất kỳ
b. Trên nhiều cột
c. Chỉ trên cột ID
d. Trên 2 cột bất kỳ
Thuộc tính nào sau đây không dùng để cấu hình cơ sở dữ liệu SQL
Server?
a. Restrict Access
b. Auto Read
c. Read Only SAI
d. Auto Shink SAI
Phiên bản Enterprise của SQL Server chứa đầy đủ các đặc trưng của
SQL Server và có thể
chạy tốt trên hệ thống lên đến?
a. 16 CPUs và 32 GB RAM
b. 32 CPUs và 64 GB RAM
c. 64 CPUs và 128 GB RAM
d. 4 CPU và 2 GB RAM
Kiểu dữ liệu nào sau đây KHÔNG có trong SQL Server ?
a. Nvarchar
b. Text
c. Bool
d. Char
Mỗi cơ sở dữ liệu trong SQL Server gồm mấy tập tin?
a. 2 sai
b. 1 sai
c. 3
d. 4 sai
Phiên bản Personal của SQL Server có thể cài đặt?
b. Windows 98
c. Windows Server 2000
d. Trên hầu hết các phiên bản của windows, kể cả Windows 98.
Tập tin có phần mở rộng là .ndf được dùng để làm gì?
a. Ghi lại các thay đổi dữ liệu giúp thực hiện rollback khi cần
b. Chỉ dùng khi cơ sở dữ liệu được phân chia chứa trên nhiều đĩa
c. Chứa dữ liệu chính
Hệ quản trị cơ sở dữ liệu SQL Server 2008 không hỗ trợ tính năng nào
sau đây?
a. Kết nối dữ liệu với các dịch vụ điện toán đám mây
b. Định nghĩa dữ liệu
c. Khôi phục dữ liệu
d. Khai phá dữ liệu
Cơ sở dữ liệu hệ thống Msdb dùng để?
a. Lưu trữ các table và stored proceduce trong quá trình làm việc
b. Lưu trữ các system objects
c. Hoạch định các báo động và công việc cần làm (schedule alerts
and jobs)
d. Lưu trữ các thông tin cấp hệ thống
Người dùng duyệt Web bằng phần mềm gì?
a. Web Browser
b. Web Page
c. Web Server
d. Web Site
Phần mềm nào sau đây không phải là một Web Browser?
a. Opera
b. Internet Explorer
c. Google Chrome
d. File Zilla
Dịch vụ chuyển đổi dữ liệu DTS của SQL Server thực hiện chức năng
gì?
a. Nhân bản dữ liệu
b. Tra cứu dữ liệu
c. Chuyển dữ liệu giữa các Server
d. Tìm kiếm
Trong cơ sở dữ liệu hệ thống, tập tin nào sau đây lưu trữ các thông tin
login account?
a. Msdb
b. Master
c. Tempdb
d. Model
Thành phần nào sau đây của SQL Server cho phép người dùng quản lý
các đối tượng cơ sở dữ
liệu bằng đồ họa?
a. Books Online
b. SQL Server Configuration Manager
c. SQL Server Management Studio
Một cơ sở dữ liệu chứa ít nhất là?
a. 1 file mdf và 1 file ndf
b. 1 file mdf, 1 file ndf và 1 file ldf
c. 1 file mdf
d. 1 file mdf và 1 file ldf
Phiên bản cài đặt nào sau đầy đủ cho các doanh nghiệp vừa và nhỏ
thực hiện tính năng thương
mại điện tử?
a. Standard Edition
b. Workgroup Edition
c. Express Edition
d. Enterprise Edition
Thành phần nào không phải đối tượng trong SQL Server?
a. Table sai
b. Trigger sai
c. Replication
d. Constraint
Hỗ trợ kiến trúc Client/Server (Supports Client/Server model) là gì?
a. Truy cập dữ liệu được lưu trữ trên Server
b. Tất cả các phương án đều đúng
c. Ứng dụng có thể chạy trên Client
d. Server có nhiệm vụ xử lý các yêu cầu và trả lại kết quả cho Client.
Câu lệnh nào không được phép dùng trong khối lệnh T-SQL?
a. Delete
b. Select colum1, column2,...
c. Create
d. Update
Câu lệnh nào được phép dùng trong khối lệnh T-SQL?
a. ALTER TABLE
b. DELETE
c. CREATE VIEW
d. DROP TABLE
Điều gì làm cho vòng lặp WHILE ngừng lặp?
a. Câu lệnh EXIT luôn luôn được sử dụng để kết thúc vòng lặp.
b. Khi điều kiện được đánh giá là NULL
c. Khi điều kiện được đánh giá là TRUE
d. Khi điều kiện được đánh giá là FALSE
Hàm nào trong SQL Server trả về ngày hiện tại của hệ thống?
a. Date()
b. currentdate()
c. now()
d. Getdate()
Độ lớn của một cột kiểu CHAR?
a. 1 byte
b. 2 bytes
c. 4 bytes
d. 8 bytes
Một cột kiểu NCHAR(25) chiếm dung lượng là?
a. 2 byte
b. 100 byte
c. 25 byte
d. 50 byte (25*2 = 50)
Kết quả của POWER(6, 2) là bao nhiêu?
a. 36
b. 12
c. 3
d. 64
Declare
@a int = 5,
@b int = null,
@c int = 10
Begin
if @a > @b AND @a < @c set @a=@c*@a
select @a
End
Giá trị của a sẽ là?
a. Null
b. Tất cả các đáp án đều sai
c. 5
d. 50
@V_GRADE nhận giá trị 'C' thì @V_PRICE sẽ nhận giá trị thế nào?
IF @V_PRICE > 1000
Set @V_GRADE = 'A'
ELSE
IF @V_PRICE > 900
Set @V_GRADE = 'B'
ELSE
IF @V_PRICE > 800 Set
@V_GRADE = 'C'
ELSE
IF @V_PRICE > 600 Set
@V_GRADE = 'D'
ELSE Set
@V_GRADE = 'E'
Chọn một câu trả lời:
a. @V_PRICE lớn hơn 800
b. @V_PRICE lớn hơn 1000
c. @V_PRICE trong khoảng 801 và 900 V_PRICE lớn hơn 1000
d. @V_PRICE trong khoảng 601 và 800 V_PRICE lớn hơn 800
Các hàm nào không thể sử dụng với kiểu dữ liệu xâu?
a. COUNT()
b. MIN() và MAX()
c. Các đáp án đều sai
d. SUM() và AVG()
Biến @a nhận giá trị nào khi khối lệnh sau được thực thi?
DECLARE @a int
BEGIN
select @a= @a + 1
END
select @a 1 0 Tất cả đều sai
a. 0
b. NULL
c. 1
d. Tất cả đều sai
Cho T-SQL block sau, dòng nào gây ra lỗi?
1. DECLARE
2. @V_DEPTNO INT
Downloaded by 06-L??ng Th? M? Duyên
(luongmyduyen252203@gmail.com)lOMoARcPSD|22659793
3. BEGIN
4. SET @V_DEPTNO = 20
5. SELECT ENAME, SALARY
FROM EMP WHERE DEPTNO = @V_DEPTNO
6. END
a. Dòng 2
b. Không có dòng nào gây lỗi.
c. Dòng 5
d. Dòng 4
Một câu lệnh IF… …ELSIF có thể có mấy mệnh đề ELSE?
0 64 1
a. 64
b. Không giới hạn
c. 0 1
d. 1
Nếu lưu giá trị 34567.2255 vào một cột có kiểu dữ liệu
NUMBER(7,2), giá trị thực sự được
lưu trữ là:
a. 34567.23
b. 34600
c. 34500
d. 34567.22
Cấu trúc nào sau đây dùng để thực hiện công việc sau:
Tăng 25% lương của nhân viên sinh trước năm 1980
Tăng 10% lương của nhân viên sinh từ năm 1980 đến 1990
Không tăng lương của nhân viên sinh sau năm 1990
a. WHILE
b. Không có đáp án đúng
c. IF… …ELSIF…ELSE
d. . IF… …ELSE
Cho đoạn lệnh:
declare @IX int =100
while (@IX <=110)
begin print @IX
if @IX=105 break
set @IX = @IX +1
END
Mấy dòng dữ liệu được in ra
a. 1
b. 0
c. 6
d. 5
Các lệnh nào sau đây bạn sẽ dùng để tạo thủ tục (procedure) mà nhận
vào 1 ký tự và hiển thị
các tiêu đề bắt đầu với ký tự đó:
a. Create procedure prcDispName @cValue char(1)asDeclare @temp
char(2)Select
@temp=@cValue+ ’%’ Select * from titles Where title like @temp
b. Create procedure prcDispNameasDeclare @temp char(2)Select
@temp=’A%’Select *
from titles Where title like @temp
c. Create procedure prcDispName @cValue char(1)asSelect * from
titles Where title like
@cValue%.
d. Create procedure prcDispName@cValue char(1)asSelect * from
titles Where title
like ’@cValue%’
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 thứ
tự ngược nhau
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 không theo
cùng thứ tự
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 phải
theo cùng 1 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
Lệnh nào sau đây không thể rollback?
a. INSERT
b. Tất cả đều sai
c. DELETE
d. DROP
Làm cách nào để trả về nhiều giá trị từ 1 procedure?
a. Sử dụng con trỏ.
b. Sử dụng các parameters OUT parameters.
c. Sử dụng các parameters IN.
d. Bạn không thể thực hiện đượ
Allen muốn xoá thủ tục dbo.fx_order_cost. Lệnh nào được dùng để
xoá thủ tục này?
a. REMOVE
b. DROP
c. EDIT
d. DELETE
Xác định ý nghĩa thủ tục sau:CREATE PROC get_playername
@sport_id
varchar(10)ASSELECT player_lname, player_fnameFROM sports
WHERE sport_id =
@sport_id
a. Thủ tục có 1 tham số vào là sport_id và sẽ hiển thị tên các môn thể
thao mà có Id
không bằng với tham số đầu vào
b. Thủ tục có 1 tham số vào là sport_id và sẽ hiển thị tên vận động
viên (player) mà có Id
không bằng với tham số đầu vào
c. Thủ tục có 1 tham số vào là sport_id và sẽ hiển thị tên vận động
viên (player) mà
có Id bằng với tham số đầu vào
d. Thủ tục có 1 tham số vào là sport_id và sẽ hiển thị tên các môn thể
thao mà có Id bằng
với tham số đầu vào
Xem xét thủ tục sau:
CREATE PROCEDURE INS_NV (@V_ID int, @V_NAME
VARCHAR(20) = 'NGUYEN',
@V_ADD VARCHAR(20))
AS
BEGIN
INSERT INTO Nhanvien (Manv, TenNV, Diachi)
Downloaded by 06-L??ng Th? M? Duyên
(luongmyduyen252203@gmail.com)lOMoARcPSD|22659793
VALUES (@v_id, @v_name, @v_ADD)
END
Để thực hiện đoạn thủ tục trên thì dùng lệnh?
a. EXECUTE INS_NV 3,'HA','HANOI'
b. EXECUTE INS_NV 3, 'LONG'
c. EXECUTE INS_NV@V_ID = @V_NAME = 'LONG', V_ADD =
'HAIPHONG'
d. Không lựa chọn nào đúng
Jack cần chèn 1 điểm dừng (save point) có tên là ’Returnback’ vào
transaction của anh t Nên
dùng lệnh nào sau đây:
a. SAVE TRANSACTION Returnback
b. INSERT SAVEPOINT Returnback
c. INSERT TRANSACTION Returnback
d. SAVE SAVEPOINT Returnback
Cho T-SQL block sau:
DECLARE @X INT = 100
WHILE (@x<= 108 )
IF @x = 102
break
ELSE
BEGIN
Insert into NHANVIEN(manv) values (@X)
SET @X=@X+1
END
Bao nhiêu dòng được thêm vào bảng Nhanvien khi thực thi block?
a. 7
b. 2
c. 9
d. 0
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 thủ tục cho mỗi mã vùng
b. Tạo 1 view cho mỗi mã vùng
c. 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
d. 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
Phát biểu nào sau đây mô tả thuộc tính atomicity của 1 transaction ?
a. Mọi chỉnh sửa trong 1 transaction hoặc được thi hành hết hoặc
không có 1 chỉnh
sửa nào được thực hiện
b. Bất kỳ thay đổi dữ liệu được thực hiện bởi một transaction vẫn giữ
nguyên hiệu quả
sau khi transaction hoàn tất
c. Mọi dữ liệu đều ở trạng thái không thay đổi sau khi transaction đã
thực hiện thành công
d. Việc chỉnh sửa dữ liệu được làm bởi 1 transaction này thì độc lập
với việc chỉnh sửa dữ
liệu của 1 transaction khác
Quy luật nào sau đây không đúng đối với một thủ tục (stored
procedure).
a. Bạn có thể thực thi 1 thủ tục mà thủ tục này gọi 1 thủ tục khác. Thủ
tục được gọi có thể
truy xuất đến các đối tượng được tạo ra bởi thủ tục gọi
b. Bạn có thể tạo, tạo lại, hay xóa các đối tượng bên trong 1 thủ tục
Các lệnh mà bạn có
thể sử dụng là CREATE, DROP, và SELECT INTO trong thủ tục của
bạn
c. Bạn có thể tham chiếu đến 1 đối tượng không nằm trong cùng 1
database với thủ tục
của bạn
d. Bạn có thể tạo một bảng tạm riêng bên trong 1 thủ tục
Trong table NHANVIEN, giá trị LUONG của nhân viên tên A
(TenNV = 'A') trong T-SQL sau
bằng mấy?
BEGIN
UPDATE NHANVIEN SET luong = 6000 WHERE TenNV = 'A'
SAVE tran save_A
UPDATE NHANVIEN SET luong = 7500 WHERE TenNV = 'A'
SAVE tran save_A
UPDATE NHANVIEN SET luong = 3000 WHERE TenNV = 'A'
SAVE Tran save_A1
ROLLBACK tran save_A
END
COMMIT
a. 3000
b. Không phải các giá trị trên
c. 7500
d. 6000
Thủ tục GetSalesPersonData được tạo ra trả về số tiền bán được của
nhân viên:CREATE
PROCEDURE GetSalesPersonData@SalesPersonID int,@RegionID
int,@SalesAmount
money OUTPUTASSELECT @SalesAmount =
SUM(SalesAmount)FROM
SalesInformationWHERE @SalesPersonID = SalesPersonIDLệnh nào
sau đây sẽ thực thi
đúng thủ tục trên?
a. EXECUTE GetSalesPersonData @SalesPersonID = 1,
@RegionID= 1,
@SalesAmount= NULL SAI
b. EXECUTE GetSalesPersonData 1, 1, NULL
SAI
c. EXECUTE GetSalesPersonData @SalesPersonID=1,
@RegionID=1,
@SalesAmount=0
d. EXECUTE GetSalesPersonData 1,1, @SalesAmount OUTPUT
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:
a. Triggers
b. Stored Procedures
c. Batches
d. View
Để tạo trigger phải xấc định những nội dung gì
a. Tên và bảng chịu tác động
b. Trigger sẽ làm những thao tác gì khi được kích hoạt
c. Tất cả các nội dung được liệt kê
d. Lệnh nào sẽ kích hoạt trigger thực hiện
Khi thực hiện thao tác nào với bảng thì trigger được gọi?
Chọn một câu trả lời:
a. Delete
b. Update
c. Tất cả các phương án đều đúng
d. Insert
Trigger khác so với thủ tục lưu ở nội dung gì?
a. Không có tham số và giá trị trả về
b. Tất cả các phương án đều đúng
c. Không cần gọi bằng lệnh EXEC mà tự động được kích hoạt khi dữ
liệu trên bảng liên
quan được cập nhật SAI
Có mấy loại trigger?
a. 3
b. 2
c. 5
d. 4
Các trường hợp nào bắt buộc phải sử dụng trigger?
a. Các ràng buộc mà không thể mô tả khi định nghĩa bảng
b. Khi có sự thay đổi dữ liệu ở 1 bảng và muốn dữ liệu trên một số
bảng khác liên quan tự
động thay đổi theo
c. Tất cả các phương án đều đúng
Sự khác biệt cơ bản giữa dettach và xóa CSDL?
a. CSDL xóa hẳn trong máy
b. CSDL xóa hẳn nhưng instance vẫn quản ly
c. CSDL vẫn còn trong máy nhưng tạm thời bị tách khỏi Instance
Có mấy kỹ thuật sao lưu?
a. 3
b. 2
c. 4
d. 5
Gợi ý nào được đề xuất khi thực hiện sao lưu dữ liệu?
a. Thực hiện sao lưu Full một lần vào lúc bắt đầu ngày (chuẩn bị làm
việc với CSDL)
b. Thực hiện nhiều sao lưu Differential trong ngày (định kỳ khoảng
một vài tiếng một lần)
c. Thực hiện nhiều sao lưu Transaction trong ngày
d. Tất cả các phương án đều đúng
Có mấy kiểu xác thực trong SQL Server
a. 3
b. 2
c. 4
d. 5
Các đặc điểm sau là của phương pháp sao lưu nào?
-Chỉ sao lưu những thay đổi trên dữ liệu kể từ lần full backup gần nhất
-Sử dụng ít tài nguyên hơn
-Không ảnh hưởng đến hiệu suất của hệ thống
-Sẽ vô nghĩa nếu không có bản sao lưu full backup
a. Full backup
b. Differential SAI
c. Transaction log backup
Các đặc điểm sau là của phương pháp sao lưu nào?
-Sao lưu bản đầy đủ của CSDL
-Quá trình được thực hiện mà không cần offline CSDL
-Chiếm lượng lớn tài nguyên hệ thống
- Ảnh hưởng thời gian đáp ứng các yêu cầu hệ thống
a. Differential
b. Full backup
c. Transaction log backup
Các đặc điểm sau là của phương pháp sao lưu nào?
-Chỉ sao lưu những thay đổi trên dữ liệu kể từ lần full backup gần nhất
-Sử dụng ít tài nguyên hơn
-Không ảnh hưởng đến hiệu suất của hệ thống
-Sẽ vô nghĩa nếu không có bản sao lưu full backup
a. Full backup
b. Transaction log backup
c. Differential
Khi xảy ra một sự kiện thao tác dữ liệu trong CSDL được lưu tạm vào
bảng nào?
a. Inserted
b. Deleted và Inserted
c. Deleted
d. Updated
Thứ tự kiêm tra ràng buộc toàn vẹn dữ liệu là gì?
a. Trigger For/After -> Trigger instead of -> Constraint
b. Constraint -> Trigger instead of -> Trigger For/After
c. Trigger instead of -> Constraint -> Trigger For/After
d. Constraint -> Trigger instead of ->Trigger For/After
Đặc điểm của trigger là gì?
a. Trigger có thể thực hiện nhiều công việc và được thực hiện bằng câu
lệnh được gọi
b. Trigger có thể thực hiện nhiều công việc và được thực hiện tự
động thông qua sự
kiện
c. Trigge chỉ có thể thực hiện một công việc và được thực hiện bằng
câu lệnh được gọi
d. Trigger chỉ có thể thực hiện một công việc và được thực hiện tự
động thông qua sự
kiện
Dịch vụ chuyển đổi dữ liệu DTS của SQL Server thực hiện chức năng
gì?
a. Tra cứu dữ liệu
b. Tìm kiếm
c. Chuyển dữ liệu giữa các Server
d. Nhân bản dữ liệu
Trong cơ sở dữ liệu hệ thống, tập tin nào sau đây lưu trữ các thông tin
login account?
a. Tempdb
b. Msdb
c. Model
d. Master
Có thể đặt mấy cột trong bảng làm khóa chính?
a. Trên 2 cột bất kỳ
b. Trên nhiều cột
c. Chỉ trên cột ID
d. Trên 1 cột bất kỳ
Thành phần nào sau đây của SQL Server cho phép người dùng quản lý
các đối tượng cơ sở dữ
liệu bằng đồ họa?
a. SQL Server Configuration Manager
b. Books Online
c. SQL Server Management Studio
Một cơ sở dữ liệu chứa ít nhất là?
a. 1 file mdf và 1 file ldf
b. 1 file mdf, 1 file ndf và 1 file ldf
c. 1 file mdf
d. 1 file mdf và 1 file ndf
Cho CSDL quản lý sản phẩm với bảng tblNHANVIEN gồm các dòng
dữ liệu:
Truy vấn sau:
Select sHoten
From tblNHANVIEN
Where sGioitinh = N’Nữ’
a.
(Sai vì thừa cột sMaNV)
b.
c.
ĐÚNG
d.
Độ lớn của một cột kiểu CHAR?
a. 1 byte
b. 8 bytes
c. 2 bytes
d. 4 bytes
Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia,
sXuatSu). Đâu là câu truy vấn
để cho danh sách tên các sản phẩm có đơn giá từ 50000 đến 100000
a. Select sTenSP
From tblSANPHAM
Where fDongia>50000
b. Select sTenSP
From tblSANPHAM
Where fDongia>50000 and fDongia<100000
c. Select *
From tblSANPHAM
Where fDongia between 50000 and 100000
d. Select sTenSP
From tblSANPHAM
Where fDongia between 50000 and 100000
Kết quả của POWER(6, 2) là bao nhiêu?
a. 12
b. 64
c. 3
d. 36
Cho bảng tblNHANVIEN(sMaNV, sHoten, sGioitinh, fHSL,
sQuequan). Đâu là câu truy vấn
để cho danh sách tên của các nhân có hệ số lương trên 3.66
a. Select *
From tblNHANVIEN
Where fHSL>3.66
b. Select sHoten, fHSL
From tblNHANVIEN
Where fHSL>3.66
c. Select sHoten
From tblNHANVIEN
d. Select sHoten
From tblNHANVIEN
Where fHSL>3.66
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:
a. Triggers
b. Stored Procedures
c. Batches
d. View
Hãy tìm lỗi trong thủ tục sau:Create proc prc1ASDeclare @a
smallintDeclare @b smallintSet
@a = 1Set @b= 1While (@a <=10)BeginWhile (@a <5) AND
(@b>1) or (@b<3)BeginSet
@a= @a+@bSet @b=@b+1EndEndreturn
a. Vòng lặp không kết thúc
b. Không có kiểu dữ liệu smallint
c. Tên thủ tục prc1 sai
d. Không cho phép 2 vòng lăp while lồng nhau
Để báo cáo số lượng bán được theo từng năm của 1 đầu sách (title)
nào đó, người ta đã tạo 1
thủ tục với nội dung như sau:CREATE PROCEDURE
get_sales_for_title@title
varchar(80),@ytd_sales int OUTPUTASSELECT @ytd_sales =
ytd_sales FROM titles
WHERE title = @titleIF @@ROWCOUNT = 0RETURN(-
1)ELSERETURN(0)Biến hệ
thống @@ROWCOUNT luôn trả về số bản ghi của lệnh SQL vừa
được thực hiện trước đó.
Bạn cần tạo 1 script để gọi thủ tục trên. Nếu thủ tục chạy thành công,
nó sẽ báo cáo số luợng
bán được, ngược lại thì hiển thị thông báo "No Sales Found". Script
này được tạo như thế
nào?
a. DECLARE @retval intDECLARE @ytd int EXEC
get_sales_for_title’Net Etiquette’,
@ytd OUTPUTIF @retval < 0PRINT ’No sales found’ELSEPRINT
’Year to date sales: ’ +
STR (@ytd)GO
b. DECLARE @retval int DECLARE @ytd int EXEC
get_sales_for_title ’Net Etiquette’,
@ytdIF @retval < 0PRINT ’No sales found’ELSEPRINT ’Year to
date sales: ’ + STR
(@ytd)GO
c. DECLARE @retval int DECLARE @ytd int EXEC
get_sales_for_title ’Net
Etiquette’,@retval OUTPUTIF @retval < 0PRINT ’No sales
found’ELSEPRINT ’Year
to date sales: ’ + STR (@ytd)GO
d. DECLARE @retval int DECLARE @ytd int EXEC @retval =
get_sales_for_title ’Net
Etiquette’, @ytd OUTPUTIF @retval < 0PRINT ’No sales
found’ELSEPRINT ’Year to date
sales: ’ + STR (@ytd) GO
Xác định ý nghĩa thủ tục sau:CREATE PROC get_playername
@sport_id
varchar(10)ASSELECT player_lname, player_fnameFROM sports
WHERE sport_id =
@sport_id
a. Thủ tục có 1 tham số vào là sport_id và sẽ hiển thị tên các môn thể
thao mà có Id bằng
với tham số đầu vào
b. Thủ tục có 1 tham số vào là sport_id và sẽ hiển thị tên vận động
viên (player) mà có Id
không bằng với tham số đầu vào
c. Thủ tục có 1 tham số vào là sport_id và sẽ hiển thị tên vận động
viên (player) mà
có Id bằng với tham số đầu vào
d. Thủ tục có 1 tham số vào là sport_id và sẽ hiển thị tên các môn thể
thao mà có Id
không bằng với tham số đầu vào
Thứ tự kiêm tra ràng buộc toàn vẹn dữ liệu là gì?
a. Constraint -> Trigger instead of -> Trigger For/After
b. Trigger instead of -> Constraint -> Trigger For/After
c. Constraint -> Trigger instead of ->Trigger For/After
d. Trigger For/After -> Trigger instead of -> Constraint
Cho đoạn mã tạo trigger:
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
Cho biết ý nghĩa của dòng code “select @gt = GT from INSERTED”
a. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính
trong bảng
INSERTED khi thêm với bảng NHÂN VIÊN
b. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính trong
bảng INSERTED
khi sửa với bảng NHÂN VIÊN
c. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính trong
bảng DELETED khi
xóa với bảng NHÂN VIÊN
d. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính trong
bảng DELETED khi
thêm với bảng NHÂN VIÊN
Mục đích của câu lệnh ALTER TRIGGER là gì?
a. Xóa một trigger đã có
b. Sửa một trigger đã có
c. Tạo một trigger mới
d. Tất cả các phương án đều đúng
Trigger khác so với thủ tục lưu ở nội dung gì?
a. Không có tham số và giá trị trả về
b. Tất cả các phương án đều đúng
c. Không cần gọi bằng lệnh EXEC mà tự động được kích hoạt khi dữ
liệu trên bảng liên
quan được cập nhật
Cho bảng tblCTHOADON (sMaHD, sMaSP, iSL, fDG, fThanhTien)

tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đoạn Trigger sau để thực hiện yêu cầu gì:
CREATE TRIGGER suaCTHD
ON tblCTHOADON
Instead of update
As
If update(iSL)
Begin
Declare int @sl, float @dg, nvarchar @soHD
Select @sl = iSL, @dg = fDG, @soHD = sMaHD
From insterted
Update tblHOADON
Set TongTien = TongTien + @sl * @dg
Where sMaHD = @soHD
End
a. Khi thêm một dòng mới vào bảng tblCTHOADON thì số tiền trong
hóa đơn được cập
nhật tương ứng
b. Khi cập nhật dữ liệu trong bảng tblCTHOASDON thì thành tiền
tương ứng của mặt
hàng đó được tính toán lại tương ứng
c. Khi cập nhật giá trị tại cột đơn giá (fDG) của sản phẩm mua thì
thành tiền tương ứng
của mặt hàng đó trong Hóa đơn được tính toán lại tương ứng
d. Khi cập nhật giá trị tại cột Số lượng (iSL) trong bảng
tblCTHOADON thì thành
tiền tương ứng của mặt hàng đó trong được tính toán lại tương
ứng
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(datetime @d)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON
Where dNgayLap = @d and A.sMaSP = B.sMaSP
END
c. CREATE PROC spTenSP(datetime @d) ĐÚNG
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
d. 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
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(datetime
@d)
As
BEGIN
Select sTenSP
From tblSANPHAM
as A,
tblCTHOADON
Where dNgayLap =
@d and A.sMaSP =
B.sMaSP
END
c. 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
d. 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
Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia,
sXuatSu). Đoạn thủ tục sau
thực hiện yêu cầu xử lý gì?
CREATE PROC spTenSP(float @a, nvarchar @xs)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia > @a and sXuatSu = @xs
END
a. Cho danh sách tên sản phẩm có xuất sứ @xs nào đó, với @xs là
tham số truyền vào
b. Cho danh sách tên sản phẩm có đơn giá lớn hơn một số @a và
xuất sứ từ một
nước @xs nào đó, với số @a và xuất sứ @xs là tham số truyền vào
c. Cho danh sách thông tin đầy đủ các sản phẩm có đơn giá lớn hơn
một số @a và xuất sứ
@xs từ một nước nào đó, với số @a và xuất sứ @xs là tham số truyền
vào
d. Cho danh sách tên sản phẩm có đơn giá lớn hơn một số @a, với số
@a là tham số
truyền vào
Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia,
sXuatSu) và tblCTHOADON
(sMaHD, sMaSP, iSLM).
Đâu là thủ tục để cho danh sách tên các sản phẩm đã được mua hàng
theo mã hóa đơn nào đó?
a. CREATE PROC spTenSP(nvarchar(9) @mhd)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where sMaHD = @mhd and A.sMaSP = B.sMaSP
END
b. CREATE PROC spTenSP
As
BEGIN
Declare nvarchar(9) @mhd
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where sMaHD = @mhd and A.sMaSP = B.sMaSP
END
c. CREATE PROC spTenSP(nvarchar(9) @mhd)
As
BEGIN
Select sTenSP
From tblCTHOADON, tbSANPHAM
Where sMaHD = @mhd
END
d. CREATE PROC spTenSP(nvarchar(9) @mhd)
As
BEGIN
Select sTenSP
From tblCTHOADON
Where sMaHD = @mhd
END
a. CREATE PROC
spTenSP(nvarchar(9)
@mhd)
As
BEGIN
Select sTenSP
b. CREATE PROC
spTenSP
As
BEGIN
Declare
nvarchar(9) @mhd
c. CREATE PROC
spTenSP(nvarchar(9)
@mhd)
As
BEGIN
Select sTenSP
d. CREATE PROC
spTenSP(nvarchar(9)
@mhd)
As
BEGIN
Select sTenSP
From tblSANPHAM
as A, tblCTHOADON
as B
Where sMaHD =
@mhd and A.sMaSP =
B.sMaSP
END
Select sTenSP
From
tblSANPHAM as
A,
tblCTHOADON as
B
Where sMaHD =
@mhd and
A.sMaSP =
B.sMaSP
END
From
tblCTHOADON,
tbSANPHAM
Where sMaHD =
@mhd
END
From
tblCTHOADON
Where sMaHD =
@mhd
END
Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia,
sXuatSu). Đâu là thủ tục để cho
tên các sản phẩm có đơn giá trong một khoảng @a và @b nào đó?
a. CREATE PROC spTenSP(float @a, float @b)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia between @a and @b
END
b. CREATE PROC spTenSP(float @a)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia >@a
END
c. CREATE PROC spTenSP
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia between 30000 and 100000
END
d. CREATE PROC spTenSP
As
BEGIN
Declare float @a, float @b
Select sTenSP
From tblSANPHAM
Where fDonGia between @a and @b
END
a. CREATE PROC
spTenSP(float @a,
float @b)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia
between @a and @b
END
b. CREATE PROC
spTenSP(float @a)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia
>@a
END
c. CREATE PROC
spTenSP
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia
between 30000 and
100000
END
d. CREATE PROC
spTenSP
As
BEGIN
Declare float @a,
float @b
Select sTenSP
From tblSANPHAM
Where fDonGia
between @a and @b
END
Cho CSDL quản lý bán hàng gồm hai bảng:
tblKHACHHANG(sSdtKH, sTenKH, SoHoaDon)
tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đoạn mã trigger để cho phép mỗi lần chèn thêm một hóa đơn mới thì
tổng số hóa đơn của
khách hàng được tăng lên tương ứng một đơn vị
a. CREATE TRIGGER ThemHoaDon
ON tblHOADON
Instead of Insert
Begin
Declare @soDT nvarchar(10)
Select @soDT = sSDTKH
From inserted
Update tblKHACHHANG
Set SoLanMua = SoLanMua + 1
Where sSdtKH = @soDT
end
b. CREATE TRIGGER ThemHoaDon
ON tblHOADON
Instead of Insert
Begin
Declare @soDT nvarchar(10)
Select @soDT = sSDTKH
From tblHOADON
Update tblKHACHHANG
Set SoLanMua = SoLanMua + 1
Where sSdtKH = @soDT
end
c. CREATE TRIGGER ThemHoaDon
ON tblHOADON
Instead of Insert
Begin
Declare @soDT nvarchar(10)
Update tblKHACHHANG
Set SoLanMua = SoLanMua + 1
Where sSdtKH = @soDT
end
d. CREATE TRIGGER ThemHoaDon
ON tblHOADON
Instead of update
Begin
Declare @soDT nvarchar(10)
Select @soDT = sSDTKH
From inserted
Update tblKHACHHANG
Set SoLanMua = SoLanMua + 1
Where sSdtKH = @soDT
end
a. CREATE
TRIGGER
ThemHoaDon
ON tblHOADON
Instead of Insert
Begin
Declare @soDT
nvarchar(10)
Select @soDT =
sSDTKH
From inserted
Update
tblKHACHHANG
Set SoLanMua =
SoLanMua + 1
Where sSdtKH =
@soDT
end
b. CREATE
TRIGGER
ThemHoaDon
ON tblHOADON
Instead of Insert
Begin
Declare @soDT
nvarchar(10)
Select @soDT =
sSDTKH
From tblHOADON
Update
tblKHACHHANG
Set SoLanMua =
SoLanMua + 1
Where sSdtKH =
@soDT
end
c. CREATE
TRIGGER
ThemHoaDon
ON tblHOADON
Instead of Insert
Begin
Declare @soDT
nvarchar(10)
Update
tblKHACHHANG
Set SoLanMua =
SoLanMua + 1
Where sSdtKH =
@soDT
end
d. CREATE
TRIGGER
ThemHoaDon
ON tblHOADON
Instead of update
Begin
Declare @soDT
nvarchar(10)
Select @soDT =
sSDTKH
From inserted
Update
tblKHACHHANG
Set SoLanMua =
SoLanMua + 1
Where sSdtKH =
@soDT
end
Cho bảng NV(MaNV, …, MaPB), DA(MaDA, …., MaPB) và
PB(MaPB, ….).
Viết trigger để khi xóa một PB thì các nhân viên và dự án của phòng
ban đó cũng được xóa
luôn.
a. CREATE TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
DECLARE @MaPhg nvarchar(9)
SELECT @MaPhg = MaPB FROM DELETED
IF EXISTS(SELECT * FROM DEAN WHERE MaPB = @MaPhg)
DELETE FROM DEAN WHERE MaPB = @MaPhg
End
b. CREATE TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
IF EXISTS(SELECT * FROM NHANVIEN WHERE MaPB =
@MaPhg)
DELETE FROM NHANVIEN WHERE MaPB = @MaPhg
IF EXISTS(SELECT * FROM DEAN WHERE MaPB = @MaPhg)
DELETE FROM DEAN WHERE MaPB = @MaPhg
End
c. CREATE TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
DECLARE @MaPhg nvarchar(9)
SELECT @MaPhg = MaPB FROM DELETED
IF EXISTS(SELECT * FROM NHANVIEN WHERE MaPB =
@MaPhg)
DELETE FROM NHANVIEN WHERE MaPB = @MaPhg
Downloaded by 06-L??ng Th? M? Duyên
(luongmyduyen252203@gmail.com)End
d. CREATE TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
DECLARE @MaPhg nvarchar(9)
SELECT @MaPhg = MaPB FROM DELETED
IF EXISTS(SELECT * FROM NHANVIEN WHERE MaPB =
@MaPhg)
DELETE FROM NHANVIEN WHERE MaPB = @MaPhg
IF EXISTS(SELECT * FROM DEAN WHERE MaPB = @MaPhg)
DELETE FROM DEAN WHERE MaPB = @MaPhg
End
a. CREATE
TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
DECLARE
@MaPhg
nvarchar(9)
SELECT @MaPhg
= MaPB FROM
DELETED
IF
EXISTS(SELECT *
FROM DEAN
WHERE MaPB =
@MaPhg)
DELETE FROM
DEAN WHERE
MaPB = @MaPhg
End
b. CREATE
TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
IF
EXISTS(SELECT *
FROM NHANVIEN
WHERE MaPB =
@MaPhg)
DELETE FROM
NHANVIEN
WHERE MaPB =
@MaPhg
IF
EXISTS(SELECT *
FROM DEAN
WHERE MaPB =
@MaPhg)
DELETE FROM
DEAN WHERE
MaPB = @MaPhg
End
c. CREATE
TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
DECLARE
@MaPhg
nvarchar(9)
SELECT @MaPhg =
MaPB FROM
DELETED
IF EXISTS(SELECT
* FROM
NHANVIEN
WHERE MaPB =
@MaPhg)
DELETE FROM
NHANVIEN
WHERE MaPB =
@MaPhg
End
d. CREATE
TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
DECLARE @MaPhg
nvarchar(9)
SELECT @MaPhg =
MaPB FROM
DELETED
IF EXISTS(SELECT
* FROM
NHANVIEN
WHERE MaPB =
@MaPhg)
DELETE FROM
NHANVIEN
WHERE MaPB =
@MaPhg
IF EXISTS(SELECT
* FROM DEAN
WHERE MaPB =
@MaPhg)
DELETE FROM
DEAN WHERE
MaPB = @MaPhg
End
Cho hai bảng
tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV, TongTien)
tblCTHOADON (sMaHD, sMaSP, iSL, fDG)
Đ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
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
b. 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
c. CREATE TRIGGER themCTHD
ON tblCTHOADON
Instead of Insert
As
Begin
Update tblHOADON
Set TongTien = TongTien + iSL * fDG
End
d. CREATE TRIGGER themCTHD
ON tblCTHOADON
Instead of Insert
As
Begin
Update tblHOADON
Set TongTien = TongTien + iSL * fDG
Where sMaHD = @soHD
End
a. 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
b. 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
c. CREATE
TRIGGER
themCTHD
ON tblCTHOADON
Instead of Insert
As
Begin
Update
tblHOADON
Set TongTien =
TongTien + iSL *
fDG
End
d. CREATE
TRIGGER
themCTHD
ON tblCTHOADON
Instead of Insert
As
Begin
Update
tblHOADON
Set TongTien =
TongTien + iSL *
fDG
Where sMaHD =
@soHD
End
Cho CSDL gồm 2 bảng:
DUAN ( MADA, TENDA, DIADIEM, NgayBD, MAPB)
PHANCONG MADA, MANV, SoGio, NgLamDA)
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
Chọn một câu trả lời:
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
declare @NgTG datetime, @NgBD datetime
SET @NgTG = (SELECT NgLamDA FROM INSERTED)
SET @NgBD = (SELECT NgayBD FROM DEAN, INSERTED
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
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
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
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
a.
Khôn
g 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
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
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
END
END
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)
END
END
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
Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia,
sXuatSu). Đâu là câu truy vấn
để cho danh sách tên các sản phẩm có đơn giá trên 50000 và có xuất
sứ ở Pháp
a. Select sTenSP
From tblSANPHAM
Where sXuatSu = N’Pháp’
b. Select sTenSP
From tblSANPHAM
Where fDonGia > 50000 and sXuatSu = N’Pháp’
c. Select *
From tblSANPHAM
Where fDonGia > 50000 and sXuatSu = N’Pháp’
d. Select sTenSP
From tblSANPHAM
Where fDonGia > 50000
Cho CSDL quản lý sản phẩm với bảng tblNHANVIEN gồm các dòng
dữ liệu:
Cho biết kết quả của câu lệnh truy vấn sau:
Select sHoten
From tblNHANVIEN
Where fHSL<3.33
Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia,
sXuatSu) và tblCTHOADON
(sMaHD, sMaSP, iSLM).
Đoạn thủ tục sau thực hiện yêu cầu xử lý gì?
CREATE PROC spTenSP(nvarchar @mhd)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where sMaHD = @mhd and A.sMaSP = B.sMaSP
END
a. Cho biết tên sản phẩm đã được khách hàng thực hiện mua hàng
b. Cho danh sách tên các sản phẩm đã được khách hàng mua hàng
trong một ngày nào đó
c. Cho biết tên sản phẩm đã được mua hàng của một hóa đơn nào
đó với mã hóa
đơn là tham số truyền vào
d. Cho danh sách thông tin đầy đủ các sản phẩm đã được mua hàng
của một hóa đơn nào
đó với mã hóa đơn là tham số truyền vào
Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia,
sXuatSu). Đoạn thủ tục sau
thực hiện yêu cầu xử lý gì?
CREATE PROC spTenSP(nvarchar @xs)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where sXuatSu = @xs
END
a. Cho danh sách tên sản phẩm theo một xuất sứ nào đó với xuất
sứ là tham số
truyền vào
b. Cho danh sách thông tin đầy đủ các sản phẩm
c. Cho danh sách tên các sản phẩm có xuất xứ nước ngoài
d. Cho danh sách thông tin đầy đủ các sản phẩm theo một một xuất sứ
nào đó với xuất sứ
là tham số truyền vào
Cho CSDL quản lý bán sản phẩm gồm các bảng:
tblNHANVIEN(sMaNV, sHoten, sGioitinh, fHSL, sQuequan)
tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongiaban, sNhaSX)
tblKHACHHANG(sSdtKH, sTenKH)
tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
tblCTHOADON (sMaHD, sMaSP, iSLM)
Đâ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 not in (Select sMaNV from tblHOADON
Where dNgayLap = @d)
END
b. CREATE PROC spTenNV
As
BEGIN
Declare datetime @d
Select sHoten
From tblNHANVIEN
Where sMaNV in (Select sMaNV from tblHOADON
Where dNgayLap = @d)
END
Downloaded by 06-L??ng Th? M? Duyên
(luongmyduyen252203@gmail.com)c. CREATE PROC spTenNV
As
BEGIN
Select sHoten
From tblNHANVIEN
Where sMaNV in (Select sMaNV from tblHOADON)
END
d. CREATE PROC spTenNV(datetime @d)
As
BEGIN
Select sHoten
From tblNHANVIEN
Where sMaNV in (Select sMaNV from tblHOADON
Where dNgayLap = @d)
END
a. CREATE PROC
spTenNV(datetime
@d)
As
BEGIN
Select sHoten
From
tblNHANVIEN
Where sMaNV not
in (Select sMaNV
from tblHOADON
Where dNgayLap =
@d)
END
b. CREATE PROC
spTenNV
As
BEGIN
Declare datetime @d
Select sHoten
From
tblNHANVIEN
Where sMaNV 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(datetime
@d)
As
BEGIN
Select sHoten
From
tblNHANVIEN
Where sMaNV in
(Select sMaNV from
tblHOADON
Where dNgayLap =
@d)
END
Cho CSDL gồm các bảng:
tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongiaban, sNhaSX,
TSLuongBan)
tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
tblCTHOADON (sMaHD, sMaSP, iSLM)
Để cho phép mỗi khi Khách hàng mua hàng với số lượng mua iSLM
nào đó thì tổng số lượng
hàng đã bán TSLuongBan của sản phẩm được cập nhật tự động thì tạo
đối tượng gì trong
CSDL tương ứng?
a. View
b. Table
c. Proc
d. Trigger
Cho đoạn mã tạo trigger:
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
Cho biết ý nghĩa của đoạn mã
a. Tạo trigger kiểm tra giới tính nhập vào cho bảng NHANVIEN
không được nhập giá trị
“Nam” hoặc”Nữ”
b. Tạo trigger kiểm tra giới tính nhập vào cho bảng NHANVIEN
chỉ nhập từ Nam
hoặc Nữ, nếu nhập sai đươc ra thông báo “Bạn nhập sai Giới
tính”
c. Tất cả các phương án đều đúng
d. Tạo trigger kiểm tra giới tính nhập vào cho bảng NHANVIEN
Cho hai bảng
tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV, TongTien)
tblCTHOADON (sMaHD, sMaSP, iSLM)
Để cho phép mỗi khi xoá một dòng mới trong bảng tblCTHOADON
thì tổng tiền của
HOADON được cập nhật theo thì viết trigger với lựa chọn biến cố nào
a. Insert
SAI
b. Update
c. Select
d. Delete
Mô hình phục hồi thực hiện: “Là mô hình phục hồi toàn bộ hoạt động
giao dịch của dữ liệu
(Insert, Update, Delete, hoạt động bởi lệnh bcp, bulk insert).”
a. Simple Recovery Model
b. Bulk-Logged Recovery Model
c. Full Recovery model
Lý do cần thiết phải thực hiện sao lưu dữ liệu?
a. ổ đĩa chứa tâp tin CSDL bị hỏng, Server bị hỏng
b. Tất cả các phương án đều đúng
c. Bị hack
d. Do nguyên nhân bên ngoài, bị vô tình hay cố ý làm sai thông tin
Kết quả của đoạn T-SQL sau sẽ như thế nào?
DECLARE
@X VARCHAR(10) = 'TITL',
@Y VARCHAR(10) = 'TITLE'
BEGIN
IF @X >= @Y
print('X is greater')
IF @Y >= @X
print('Y is greater')
END
a. “X is greater”
b. “Y is greater”
c. Không in ra gì cả
d. Cả “X is greater” và “Y is greater”
Cho CSDL Quản lý nhân sự gồm các bảng:
NHANVIEN(MaNV, HoTen, HSL, PC, GioiTinh, MaPB)
PHONGBAN(MaPB, TenPB, DiaDiem)
Tài khoản “db_user1” được thực hiện câu lệnh nào sau khi đoạn mã
sau được thực hiện:
REVOKE SELECT, UPDATE
ON NHANVIEN( HoTen, HSL )
FROM db_user1
REVOKE SELECT, UPDATE
ON PHONGBAN( TenPB )
FROM db_user1
a. Select HoTen, HSL, TenPB
From NHANVIEN, PHONGBAN
Where NHANVIEN.MaPB = PHONGBAN.MaPB
Update NHANVIEN
Set PC = PC + 1
Where GioiTinh = N’Nữ”
b. Select HoTen, HSL, TenPB, GioiTinh
From NHANVIEN, PHONGBAN
Where NHANVIEN.MaPB = PHONGBAN.MaPB
c. Select HoTen, HSL, TenPB
From NHANVIEN, PHONGBAN
Where NHANVIEN.MaPB = PHONGBAN.MaPB
Update NHANVIEN
Set HSL = HSL + 1
Where GioiTinh = N’Nữ”
d. Delete from NHANVIEN
Where GioiTinh = N’Giới tính”
Cho đoạn lệnh:
DECLARE
@V1 int
BEGIN
SELECT COUNT(*) FROM nhanvien
END
BEGIN
set @V1= @@ROWCount
END
Giá trị @V1 sẽ nhận là?
a. 1
b. 0
c. NULL
d. Tùy thuộc vào số lượng bản ghi của bảng Nhanvien
Cho các bảng
PHONGBAN ( MAPB, TENDV , MaTP, NgayBD, SoNV),
NHANVIEN ( MANV, HOTen,
NS, GT, HSL, DC, MAPB, NgayVL), DUAN ( MADA, TENDA,
DIADIEM, NgBD, MAPB)
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. CREATE TRIGGER UpdateMaPhong
SAI
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
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 NHANVIEN Where MaPB=
@MaPhgCu) )
UPDATE NHANVIEN SET MaPB = @MaPhgMoi
WHERE MaPB = @MaPhgCu
END
END
c. Tất cả các phương án đều đúng
d. CREATE TRIGGER UpdateMaPhong
ĐÚNG
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
a. 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
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 NHANVIEN Where
MaPB= @MaPhgCu) )
UPDATE NHANVIEN
SET MaPB =
@MaPhgMoi
WHERE MaPB =
@MaPhgCu
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
If ( EXISTS (select MaPB
from DUAN Where MaPB
= @MaPhgCu) )
UPDATE DUAN set
MaPB = @MaPhgMoi
WHERE MaPB =
@MaPhgCu
END
END
END
END
END
Có mấy phương pháp thực hiện phân mảnh dữ liệu
a. 2
b. 3
c. 4
d. 5
Ý nghĩa của đoạn mã sau là gì?
CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF insert
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from INSERTED
if (@tg<5 and @tg>10)
Raiserror('Thoi gian chi nhap tu 5 den 10', 16,1)
END
a. Tạo trigger khi sửa phân công chỉ được nhận giá trị từ 5 đến 10
b. Đoạn mã tạo trigger cho phép nhập số giờ của nhân viên chỉ là
từ 5 đến 10 khi
thêm phân công nhân viên thực hiện dự án
c. Tất cả các phương án đều đúng
d. Tạo trigger khi nhập dữ liệu phân công có số giờ hoặc dưới 5 hoặc
trên 10
Câu lệnh sau thực hiện công việc gì?
DENY SELECT, INSERT, UPDATE
ON TacGia
TO db_user1, db_user2
a. Từ chối quyền được phép chọn – chèn và sửa trên bảng TacGia
với tài khoản
db_user1 và db_user2
b. Từ chối quyền được phép chọn – chèn và sửa trên bảng TacGia với
tất cả các tài khoản
c. Từ chối quyền được phép chọn sửa trên bảng TacGia với tài khoản
db_user1 và
db_user2
d. Từ chối quyền được phép xoa – chọn và sửa trên bảng TacGia với
tài khoản db_user1
và db_user2
Để liên kết đến server khác có những cách nào?
a. Tất cả các phương pháp đều đúng
b. Sử dụng câu lệnh truy vấn Thông qua của sổ Management Studio
c. Sử dụng câu lệnh truy vấn
Để khai thác đến một bảng của CSDL khác trong cùng Server cần phải
xác định thông tin gì?
a. Tên người dùng
b. Tên bảng
c. Tên CSDL
d. Tất cả các thông tin
Câu lệnh để cấp phát tất cả các quyền cho tất cả các tài khoản được
viết như thế nào?
a. GRANT all
TO all accounts
b. GRANT all
TO accounts
c. GRANT all
TO public
d. Không có đáp án nào đúng
Đ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
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

Cho CSDL Quản lý nhân sự gồm các bảng:


NHANVIEN(MaNV, HoTen, HSL, PC, GioiTinh, MaPB)
PHONGBAN(MaPB, TenPB, DiaDiem)
Để tài khoản db_user1 được quyền lựa chọn - cập nhật trên thuộc tính
HoTen, Hệ số lương
của bảng NHANVIEN và trên thuộc tính tên phòng ban của bảng
PHONGBAN thì câu lệnh
phân quyền đầy đủ là gì?
a. REVOKE SELECT, UPDATE
ON NHANVIEN( HoTen, HSL )
FROM db_user1
b. REVOKE SELECT, UPDATE
ON NHANVIEN( HoTen, HSL )
FROM db_user1
REVOKE SELECT, UPDATE
ON PHONGBAN( TenPB )
FROM db_user1
c. REVOKE SELECT, UPDATE
ON PHONGBAN
FROM db_user1
d. REVOKE SELECT, UPDATE
ON NHANVIEN
FROM db_user1
REVOKE SELECT, UPDATE
ON PHONGBAN
FROM db_user1
a. REVOKE
SELECT,
UPDATE
ON
NHANVIEN( Ho
Ten, HSL )
FROM db_user1
b. REVOKE
SELECT,
UPDATE
ON
NHANVIEN( HoTe
n, HSL )
FROM db_user1
REVOKE
SELECT,
UPDATE
ON
PHONGBAN( Te
c. REVOKE
SELECT,
UPDATE
ON PHONGBAN
FROM db_user1
d. REVOKE
SELECT,
UPDATE
ON NHANVIEN
FROM db_user1
REVOKE
SELECT,
UPDATE
ON PHONGBAN
FROM db_user1
FROM db_user1
Thay vì thực hiện truy vấn câu lệnh:
SELECT *
FROM Server2.QuanlyKH.dbo.KhachHang
Để thực hiện trong suốt dữ liệu với tên là “QLKH” thì câu lệnh đúng
là gì?
a. Create synonym QLKH for QuanlyKH.dbo.KhachHang
Select * from QLKH
b. Create synonym QLKH for Server2.QuanlyKH.dbo.KhachHang
Select * from QLKH
c. Create QLKH for Server2.QuanlyKH.dbo.KhachHang
Select * from QLKH
d. Create synonym QLKH for KhachHang
Select * from QLKH
Cho CSDL “QLGV” với bảng tblNV phân mảnh dọc theo nguyên tắc
sau:
-Server1 gồm các thông tin: MaNV, HoTen, GioiTinh
-Server2 gồm các thông tin: MaNV, DiaChi, DienThoai, Email
Câu lệnh còn thiếu để tạo view đầy đủ danh sách các GV lấy từ cả 2
server (view được viết
trên Server2)
Create View DSNV
as
begin
Select tblNV.MaNV, Hoten, GioiTinh, DiaChi, DienThoai, Email
From tblNV, Server1.QLGV.dbo.tblNV
Where
…..
end
a. tblNV.MaNV = Server1.QLGV.dbo.tblNV.MaNV
b. MaNV = tblNV.MaNV
c. tblNV.MaNV = QLGV.dbo.tblNV.MaNV
d. tblNV.MaNV = Server1. tblNV.MaNV
Câu lệnh để thực hiện “Hủy bỏ quyền xem và cập nhất dữ liệu trên cột
‘Luong’ của bảng nhân
viên đối với tài khoản có tên là ‘db_user1’ ” được viết như thế nào?
a. REVOKE SELECT
ON NHANVIEN( Luong )
FROM db_user1
b. REVOKE SELECT, UPDATE
ON NHANVIEN
FROM db_user1
c. REVOKE SELECT, UPDATE
ON NHANVIEN( Luong )
FROM db_user1
d. REVOKE SELECT, UPDATE
ON NHANVIEN
Phương pháp phân mảnh thực hiện: Chia tách quan hệ ban đầu R
thành các quan hệ Ri có số
cột nhỏ hơn, (tập con của R) nhưng mỗi Ri đều phải chứa khóa chính
của R
a. Phân mảnh dọc
b. Phân mảnh hỗ hợp
c. Không phải các phương pháp này
d. Phân mảnh ngang
Cho đoạn mã sau.
DECLARE
@V_BONUS INT,
BEGIN
SELECT @V_SALARY = luong
FROM nhanvien
WHERE manv = 1
set @V_BONUS = @V_SALARY * 0.1;
END
select @V_BONUS
Nguyên nhân đoạn mã gây ra lỗi:
a. Thiếu phần EXCEPTION
b. Biến V_BONUS chưa khởi tạo.
c. Câu lệnh SELECT có bí danh
d. Chưa khai báo biến @V_SALARY
Declare
@a int = 5,
@b int = null,
@c int = 10
Begin
if @a > @b AND @a < @c set @a=@c*@a
select @a
End
Giá trị của a sẽ là?
a. 5
b. Null
c. 50
d. Tất cả các đáp án đều sai
Câu hỏi 6
Kết quả của câu truy vấn sau là gì?
SELECT (25%5) ,(8%2.5)
a. 0 và 2
b. 0 và 0.5
c. 5 và 4.5
d. Câu lệnh gây ra lỗi.
Câu hỏi 7
Cho CSDL “QuanLyKH” cài đặt trên máy “Server2” có chứa bảng
“KhachHang”. Tại máy
“Server1” muốn lấy các thông tin trong bảng “KhachHang” thì câu
lệnh thực hiện là:
Chọn một câu trả lời:
a. SELECT *
FROM Server2.QuanlyKH.dbo.KhachHang
b. SELECT *
FROM QuanlyKH.dbo.KhachHang
c. SELECT *
FROM KhachHang
d. SELECT *
FROM Server2. KhachHang
Cảnh báo lỗi “…… .mdf cannot be overwritten. It is being used by
database ‘…’” xảy ra khi
thực hiện thao tác gì?
a. Khôi phục CSDL
b. Nhập (import) CSDL
c. Xuất (export) CSDL
d. Sao lưu CSDL
Cho bảng PHANCONG(MADA, MANV, SoGio)
Đoạn mã tạo trigger cho phép nhập số giờ của nhân viên chỉ là từ 5
đến 10 khi thêm phân
công nhân viên thực hiện dự án
a. CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF Delete
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from DELETED
if (@tg<5 or @tg>10)
Raiserror('Thoi gian chi nhap tu 5 den 10', 16,1)
END
b. CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF insert
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from INSERTED
if (@tg<5 or @tg>10)
Raiserror('Thoi gian chi nhap tu 5 den 10', 16,1)
END
c. CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF insert
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from INSERTED
if (@tg<5 and @tg>10)
Raiserror('Thoi gian chi nhap tu 5 den 10', 16,1)
END
d. CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF insert
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from INSERTED
if not (@tg<5 and @tg>10)
Raiserror('Thoi gian chi nhap tu 5 den 10', 16,1)
END
a. CREATE
TRIGGER
TG_PC
ON PHANCONG
INSTEAD OF
Delete
AS
BEGIN
declare @tg as
float
SELECT @tg =
SoGio from
DELETED
if (@tg<5 or
@tg>10)
Raiserror('Thoi
gian chi nhap tu 5
den 10', 16,1)
END
b. CREATE
TRIGGER
TG_PC
ON PHANCONG
INSTEAD OF
insert
AS
BEGIN
declare @tg as
float
SELECT @tg =
SoGio from
INSERTED
if (@tg<5 or
@tg>10)
Raiserror('Thoi
gian chi nhap tu 5
den 10', 16,1)
END
c. CREATE
TRIGGER
TG_PC
ON PHANCONG
INSTEAD OF
insert
AS
BEGIN
declare @tg as
float
SELECT @tg =
SoGio from
INSERTED
if (@tg<5 and
@tg>10)
Raiserror('Thoi
gian chi nhap tu 5
den 10', 16,1)
END
d. CREATE
TRIGGER
TG_PC
ON PHANCONG
INSTEAD OF
insert
AS
BEGIN
declare @tg as
float
SELECT @tg =
SoGio from
INSERTED
if not (@tg<5 and
@tg>10)
Raiserror('Thoi
gian chi nhap tu 5
den 10', 16,1)
END
Cho CSDL “QLNV” với bảng tblNhanVien(MaNV, TenNV,
GioiTinh, DiaChi) phân mảnh
ngang theo nguyên tắc sau:
-Server1 gồm các nhân viên Nữ
-Server2 gồm các nhân viên Nam
Câu lệnh để có được bảng đầy đủ danh sách các nhân viên (cả nam và
nữ) từ Server 2 là gì?
a. Select MaNV, TenNV, GioiTinh, DiaChi
from
Server1.tblNhanvien
b. Select MaNV, TenNV, GioiTinh, DiaChi
from
Server1.QLNV.dbo.tblNhanvien
Union
Select MaNV, TenNV, GioiTinh, DiaChi
From tblNhanvien
c. Select MaNV, TenNV, GioiTinh, DiaChi
from
tblNhanvien
Union
Select MaNV, TenNV, GioiTinh, DiaChi
From Server2.QLNV.dbo.tblNhanvien
d. Select MaNV, TenNV, GioiTinh, DiaChi
from
Server1.tblNhanvien
Union
Select MaNV, TenNV, GioiTinh, DiaChi
From tblNhanvien
a. Select MaNV,
TenNV, GioiTinh,
DiaChi
from
Server1.tblNhanv
ien
b. Select MaNV,
TenNV, GioiTinh,
DiaChi
from
Server1.QLNV.d
bo.tblNhanvien
Union
Select MaNV,
TenNV, GioiTinh,
DiaChi
From
tblNhanvien
c. Select MaNV,
TenNV, GioiTinh,
DiaChi
from
tblNhanvien
Union
Select MaNV,
TenNV, GioiTinh,
DiaChi
From
Server2.QLNV.db
o.tblNhanvien
d. Select MaNV,
TenNV, GioiTinh,
DiaChi
from
Server1.tblNhanvien
Union
Select MaNV,
TenNV, GioiTinh,
DiaChi
From tblNhanvien
Có mấy phương pháp phân tán CSDL?
a. 5
b. 3
c. 2
d. 4
Điều kiện của của phân mảnh phải thoản mãn là gì khi thực hiện phân
mảnh ngang
a. Cả hai điều kiện đều sai
b. Cả hai điều kiện đều đúng
c. Các phân mảnh phải đảm bảo tách rời Ri ∩ Rj = ϕ
d. Các phân mảnh không tách rời, phải có cùng thuộc tính khóa chính
Câu lệnh sau thực hiện gì?
GRANT CREATE TABLE, CREATE VIEW
TO db_user
a. Cấp quyền được phép sửa bảng và sửa view đối với tất cả các tài
khoản
b. Cấp quyền được phép xóa bảng và xóa view đối với tất cả các tài
khoản
c. Cấp quyền được phép tạo bảng và tạo view đối với tài khoản
db_user
d. Cấp quyền được phép tạo bảng và tạo view đối với tất cả các tài
khoản
Lệnh sửa đổi 1 thủ tục có tên là prcPrintStoreList như sau:ALTER
PROCEDURE
prcPrintStoreList @state char(15)ASBEGINIF EXISTS(SELECT *
FROM Stores WHERE
state=@state)BEGINPRINT 'List of Stores'SELECT
stor_id,stor_name,
stor_address,cityFROM Stores WHERE state = stateReturn
0ENDELSEBEGINPRINT 'No
Records Found for given state'RETURN 1ENDENDHãy xác định kết
quả sửa đổi này
a. Lỗi khi chạy thủ tục (Run-time error )
b. Lỗi biên dịch ( Compile-time error )
c. 1
Khảo sát thủ tục sau:Create procedure prcTemp@tmp int
outputAsSelect @tmp=ytd_sales
from titlesReturnHãy xác định lệnh SQL được dùng để hiển thị giá trị
của biến đầu ra khi thủ
tục này được gọi :
a. Exec prcTemp @tmp output Print @tmp
b. Declare @tmp int Exec prcTemp @tmp Print @tmp
c. Declare @temp int Exec prcTemp @tmp=@tempPrint @temp
d. Declare @temp intExec prcTemp @tmp=@temp outputPrint
@temp
Cho CSDL “QLGV” với bảng tblNV phân mảnh dọc theo nguyên tắc
sau:
-Server1 gồm các thông tin: MaNV, HoTen, GioiTinh
-Server2 gồm các thông tin: MaNV, DiaChi, DienThoai, Email
Đoạn code thiếu để chèn thêm một nhân viên mới vào bảng (thủ tục
được viết trên Server2)
Create Proc spInsertNhanVien (@ma varchar(10), @HTnVarchar(20),
@GT as nvarchar(3),
@DC as nvarchar(20), @DT as nvarchar(20), @Email as
nvarchar(20))@diachi nvarchar(30),
@dienthoai varchar(11))
as
Begin
Insert Into tblNV Values(@ma, @DC, @DT, @Email)
…..
print N'Thêm thành công'
End
a. Insert Into Server1.QLGV.dbo.tblNV Values(@ma,@DC, @DT,
@Email)
b. Insert Into Server2.QLGV.dbo.tblNV Values(@ma,@HT, @GT)
c. Insert Into tblNV Values(@ma,@HT, @GT)
d. Insert Into Server1.QLGV.dbo.tblNV Values(@ma,@HT,
@GT)
Phương pháp phân mảnh thực hiện: Chia quan hệ ban đầu R thành các
mảnh (đoạn), mỗi
mảnh chứa một số bộ giá trị của R thỏa mãn một tính chất nào đấy
(điều kiện phân mảnh).
a. Không phải các phương pháp này
b. Phân mảnh ngang
c. Phân mảnh hỗ hợp
d. Phân mảnh dọc
Câu lệnh CREATE LOGIN <tên đăng nhập> FROM WINDOWS
[ WITH [ DEFAULT_DATABASE = <Tên CSDL> ]
được dùng để làm gì?
a. Tạo login với quyền đăng nhập Window
b. Tạo login với quyền đăng nhập SQL Server
c. Cả hai đáp án đều sai
d. Cả hai đáp án đều đúng
Sự khác nhau cơ bản trong 2 trường hợp sau:
1. Sửa trigger bằng lệnh Alter trigger
2. Xóa trigger bằng lệnh drop trigger sau đó tạo lại bằng lệnh create
trigger
a. Khi dùng lệnh Drop thì toàn bộ quyền cấp phát trên trigger bị mất
và phải cấp phát lại
b. Khi dùng lệnh Alter trigger thì các quyền đã cấp phát cho trigger đó
vẫn còn
c. Tất cả các phương án đều đúng
Cho CSDL “QLNV” với bảng tblNhanVien(MaNV, TenNV,
GioiTinh, DiaChi) phân mảnh
ngang theo nguyên tắc sau:
-Server1 gồm các nhân viên Nữ
-Server2 gồm các nhân viên Nam
Đoạn code để chèn thêm một nhân viên mới vào bảng (thủ tục được
viết trên Server2)
a. Không có đáp án đúng
b. Create Proc spInsertNhanvien (@ma varchar(10), @ten
nVarchar(20), @gioitinh
nvarchar(3), @diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi)
Else
Insert Into Server1.QLNNV.dbo.tblNhanvien
Values(@ma,@ten,@gioitinh,@diachi)
print N'Thêm thành công'
End
c. Create Proc spInsertNhanvien (@ma varchar(10), @ten
nVarchar(20), @gioitinh
nvarchar(3), @diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi)
Else
Insert Into tblNhanvien
Values(@ma,@ten,@gioitinh,@diachi)
print N'Thêm thành công'
End
d. Create Proc spInsertNhanvien (@ma varchar(10), @ten
nVarchar(20), @gioitinh
nvarchar(3), @diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi)
Else
Insert Into Server1.tblNhanvien
Values(@ma,@ten,@gioitinh,@diachi)
print N'Thêm thành công'
End
a.
Kh
ông

đáp
án
đún
g
b. Create Proc
spInsertNhanvien
(@ma varchar(10),
@ten nVarchar(20),
@gioitinh nvarchar(3),
@diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
c. Create Proc
spInsertNhanvien
(@ma varchar(10),
@ten nVarchar(20),
@gioitinh nvarchar(3),
@diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
d. Create Proc
spInsertNhanvien
(@ma varchar(10),
@ten nVarchar(20),
@gioitinh nvarchar(3),
@diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Downloaded by 06-L??ng Th? M? Duyên
(luongmyduyen252203@gmail.com)
Insert Into
tblNhanvien
Values(@ma,@ten,@g
ioitinh,@diachi)
Else
Insert Into
Server1.QLNNV.dbo.
tblNhanvien
Values(@ma,@ten,@g
ioitinh,@diachi)
print N'Thêm thành
công'
End
Insert Into
tblNhanvien
Values(@ma,@ten,@g
ioitinh,@diachi)
Else
Insert Into
tblNhanvien
Values(@ma,@ten,@g
ioitinh,@diachi)
print N'Thêm thành
công'
End
Insert Into
tblNhanvien
Values(@ma,@ten,@g
ioitinh,@diachi)
Else
Insert Into
Server1.tblNhanvien
Values(@ma,@ten,@g
ioitinh,@diachi)
print N'Thêm thành
công'
End
Cho các bảng
LOP( malop, TenLop, NienKhoa, SiSo)
SINHVIEN ( MaSV, Hoten, NS, GT, maLop)
Viết trigger khi sưar một lớp nào đó thì các sinh viên thuộc lớp đó
cũng sửa theo.
a. CREATE TRIGGER UpdateMaLop
ON LOP
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
DECLARE @MaLopCu nvarchar(9), @MaLopMoi nvarchar(9)
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
If ( EXISTS (select MaLop from SINHVIEN Where MaLop=
@MaLopCu) )
UPDATE SINHVIEN SET MaLop = @MaLopMoi
WHERE MaLop = @MaLopCu
END
END
Downloaded by 06-L??ng Th? M? Duyên
(luongmyduyen252203@gmail.com)
lOMoARcPSD|22659793lOMoARcPSD|22659793
b. CREATE TRIGGER UpdateMaLop
ON SINHVIEN
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
DECLARE @MaLopCu nvarchar(9), @MaLopMoi nvarchar(9)
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
If ( EXISTS (select MaLop from SINHVIEN Where MaLop=
@MaLopCu) )
UPDATE SINHVIEN SET MaLop = @MaLopMoi
WHERE MaLop = @MaLopCu
END
END
c. CREATE TRIGGER UpdateMaLop
ON LOP
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
If ( EXISTS (select MaLop from SINHVIEN Where MaLop=
@MaLopCu) )
UPDATE SINHVIEN SET MaLop = @MaLopMoi
WHERE MaLop = @MaLopCu
END
END
d. CREATE TRIGGER UpdateMaLop
ON LOP
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
DECLARE @MaLopCu nvarchar(9), @MaLopMoi nvarchar(9)
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
END
END
a. CREATE
TRIGGER
UpdateMaLop
ON LOP
FOR UPDATE
AS
BEGIN
IF
UPDATE( MaLop)
BEGIN
DECLARE
@MaLopCu
nvarchar(9),
@MaLopMoi
nvarchar(9)
SELECT
@MaLopCu =
MaLop FROM
DELETED
SELECT
@MaLopMoi =
MaLop FROM
INSERTED
If ( EXISTS (select
MaLop from
SINHVIEN Where
MaLop=
@MaLopCu) )
UPDATE
SINHVIEN SET
MaLop =
@MaLopMoi
WHERE MaLop =
@MaLopCu
END
END
b. CREATE
TRIGGER
UpdateMaLop
ON SINHVIEN
FOR UPDATE
AS
BEGIN
IF
UPDATE( MaLop)
BEGIN
DECLARE
@MaLopCu
nvarchar(9),
@MaLopMoi
nvarchar(9)
SELECT
@MaLopCu =
MaLop FROM
DELETED
SELECT
@MaLopMoi =
MaLop FROM
INSERTED
If ( EXISTS (select
MaLop from
SINHVIEN Where
MaLop=
@MaLopCu) )
UPDATE
SINHVIEN SET
MaLop =
@MaLopMoi
WHERE MaLop =
@MaLopCu
END
END
c. CREATE
TRIGGER
UpdateMaLop
ON LOP
FOR UPDATE
AS
BEGIN
IF
UPDATE( MaLop)
BEGIN
SELECT
@MaLopCu =
MaLop FROM
DELETED
SELECT
@MaLopMoi =
MaLop FROM
INSERTED
If ( EXISTS (select
MaLop from
SINHVIEN Where
MaLop=
@MaLopCu) )
UPDATE
SINHVIEN SET
MaLop =
@MaLopMoi
WHERE MaLop =
@MaLopCu
END
END
d. CREATE
TRIGGER
UpdateMaLop
ON LOP
FOR UPDATE
AS
BEGIN
IF
UPDATE( MaLop)
BEGIN
DECLARE
@MaLopCu
nvarchar(9),
@MaLopMoi
nvarchar(9)
SELECT
@MaLopCu =
MaLop FROM
DELETED
SELECT
@MaLopMoi =
MaLop FROM
INSERTED
END
END
Câu hỏi 6
Cho CSDL quản lý bán hàng gồm hai bảng:
tblKHACHHANG(sSdtKH, sTenKH, SoHoaDon)
tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đoạ Trigger sau đây thực hiện gì?
CREATE TRIGGER ThemHoaDon
ON tblHOADON
Instead of Insert
Begin
Declare @soDT nvarchar(10)
Select @soDT = sSDTKH
From tbl inserted
Update tblKHACHHANG
Set SoLanMua = SoLanMua + 1
end
a. Số hóa đơn trogn bảng khách hàng tự động tính để xác định được số
lần mua tương ứng
b. Mỗi lần xoá một hóa đơn thì số hóa đơn của khác hàng được giảm
đi một đơn vị tương
ứng
c. Mỗi lần chèn thêm một hóa đơn mới thì tổng số hóa đơn của
khách hàng tương
ứng được lập cho hóa đơn đó được tăng lên tương ứng một đơn vị
d. Mỗi khi chỉnh sửa Hóa đơn thì số hóa đơn của khách hàng được
tăng lên tương ứng
Để thu hồi quyền được sửa của tài khoản người dùng Test với bảng
tblNhanVien trên thuộc
tính “QueQuan” và “HoTen” đã được cấp trước đó thì câu lệnh là gì?
a. REVOKE SELECT, UPDATE
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
b. REVOKE UPDATE
ON tblNHANVIEN(HoTen, QueQuan)
TO test
c. GRANT UPDATE
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
d. REVOKE ALL
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
Cho bảng tblNHANVIEN(maNV, HoTen, QueQuan, HSL).
Câu lệnh để phân quyền được phép xem (lấy)và chỉnh sửa dữ liệu trên
cột (HoTen, QueQuan)
của bảng tblNHANVIEN cho tài khoản “nguoidung1” là gì?
a. GRANT SELECT, UPDATE
ON tblNHANVIEN
TO nguoidung1
b. GRANT UPDATE
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
c. GRANT SELECT, UPDATE
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
d. GRANT VIEW, UPDAE
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
Giả sử, CSDL được lập lịch Full Database Backup vào ngày chủ nhật,
Differential Database
Backup vào ngày thứ ba và thứ năm, còn Log Database Backup cứ
mỗi tiếng một lần vào các
ngày từ thứ 2 đến thứ 6 trong tuần,
Trong trường hợp, ngày thứ sáu có sự cố với CSDL data file bị hỏng,
để phục hồi dữ liệu và
CSDL hoạt động bình thường, thứ tự các bước phục hồi thực hiện như
thế nào?
a. + Khôi phục Transaction log backup ngày thứ năm.
+ Phục hồi Differential Database của ngày thứ năm.
+ Khôi phục Full Database của ngày chủ nhật.
b. + Khôi phục Full Database của ngày chủ nhật.
+ Khôi phục Transaction log backup ngày thứ năm.
+ Phục hồi Differential Database của ngày thứ năm.
c. + Phục hồi Differential Database của ngày thứ năm.
+ Khôi phục Transaction log backup ngày thứ năm.
+ Khôi phục Full Database của ngày chủ nhật.
d. + Khôi phục Full Database của ngày chủ nhật.
+ Phục hồi Differential Database của ngày thứ năm.
+ Khôi phục Transaction log backup ngày thứ năm.
Để cấp quyền cho người dùng “Test” được quyền xem dữ liệu của
Bảng “tblNhanVien” thì
câu lệnh được sử dụng là gì?
a. GRANT
b. SELECT
c. DENY
d. INVOKE
Câu lệnh để thực hiện Cấp phát cho tài khoản ‘db_user1’ được quyền
xem và cập nhật dữ liệu
trên cột ‘hoten, diachi, và Luong của bảng nhân viên’ được viết như
thế nào?
a. GRANT SELECT, UPDATE
ON NHANVIEN( hoten, diachi, luong)
TO db_user1
b. GRANT SELECT
ON NHANVIEN
TO db_user1
c. GRANT SELECT, UPDATE
ON NHANVIEN
TO db_user1
d. GRANT UPDATE
ON NHANVIEN( hoten, diachi, luong)
Cho máy thật có địa chỉ là 192.168.10.25. Để máy ảo kết nối phân tán
được đến máy chủ thì
địa chỉ máy áo phải là địa chỉ nào sau đây?
a. 192.169.10.25
b. 195.168.10.25
c. 192.168.10.40
d. 192.168.11.25
Cho CSDL “QLNV” với bảng tblPhongBan phân mảnh dọc theo
nguyên tắc sau:
-Server1 gồm các thông tin: MaPhong, TenPhong
-Server2 gồm các thông tin: MaPhong, DiaDiem, DienThoai
Đoạn code để chèn thêm một phòng ban mới vào bảng (thủ tục được
viết trên Server2)
a. Create Proc spInsertPhongban (@ma varchar(10), @ten
nVarchar(20), @diachi
nvarchar(30), @dienthoai varchar(11))
as
Begin
Insert Into tblPhongBan Values(@ma, @ten, @diachi, @đienthoai)
print N'Thêm thành công'
End
b. Không có đáp án nào đúng
c. Create Proc spInsertPhongban (@ma varchar(10), @ten
nVarchar(20), @diachi
nvarchar(30), @dienthoai varchar(11))
as
Begin
Insert Into Server1.QLNV.dbo.tblPhongBan Values(@ma, @diachi,
@đienthoai)
Insert Into tblPhongBan Values(@ma,@ten)
print N'Thêm thành công'
End
d. Create Proc spInsertPhongban (@ma varchar(10), @ten
nVarchar(20), @diachi
nvarchar(30), @dienthoai varchar(11))
as
Begin
Insert Into tblPhongBan Values(@ma, @diachi, @đienthoai)
Insert Into Server1.QLNV.dbo.tblPhongBan Values(@ma,@ten)
print N'Thêm thành công'
End
a. Create Proc
spInsertPhongban (@ma
varchar(10), @ten
nVarchar(20), @diachi
nvarchar(30),
@dienthoai varchar(11))
as
Begin
Insert Into tblPhongBan
Values(@ma, @ten,
@diachi, @đienthoai)
print N'Thêm thành công'
End
Kh
b. Không có đáp án
c. Create Proc
spInsertPhongban (@ma
varchar(10), @ten
nVarchar(20), @diachi nvarchar(30), @dienthoai
varchar(11))
as
Begin
Insert Into
Server1.QLNV.dbo.tblPhon gBan Values(@ma,
@diachi, @đienthoai)
Insert Into tblPhongBan
Values(@ma,@ten)
print N'Thêm thành công'
End
d. Create Proc
spInsertPhongban (@ma
varchar(10), @ten
nVarchar(20), @diachi nvarchar(30), @dienthoai
varchar(11))
as
Begin
Insert Into tblPhongBan
Values @đienthoai) (@ma, @diachi,
Insert Into
Server1.QLNV.dbo.tblPho
ngBan Values(@ma,@ten)
print N'Thêm thành công'
End
Cú pháp để truy xuất đến một bảng của CSDL khác năm khác Server
là:
a. [ServerName][.owner][.tableName]
b. [DatabaseName][.owner][.tableName] [.ServerName]
c. [ServerName][.DatabaseName][.owner][.tableName]
d. [ServerName][.tableName]
Cho bảng tblCTHOADON (sMaHD, sMaSP, iSL, fDG, fThanhTien).
Đoạn Trigger cho phép
Khi cập nhật giá trị tại cột Số lượng thì thành tiền tương ứng của mặt
hàng đó được tính toán
lại tương ứng
d. CREATE TRIGGER suaCTHD
ON tblCTHOADON
Instead of update
As
If update(iSL)
Begin
Declare int @sl, float @dg, nvarchar(9) @soHD, nvarchar(9)
@maSP
Select @sl = iSL, @dg = fDG, @soHD = sMaHD, @maSP = sMaSP
From insterted
Update tblCTHOADON
Set fThanhTien = @sl * @dg
Where sMaHD = @soHD and sMaSP = @maSP
End
a. CREATE
TRIGGER
suaCTHD
ON
tblCTHOADON
Instead of insert
As
If update(iSL)
Begin
Declare int @sl,
float @dg,
b. CREATE
TRIGGER
suaCTHD
ON
tblCTHOADON
Instead of update
As
Begin
Declare int @sl,
float @dg,
nvarchar(9)
c. CREATE
TRIGGER
suaCTHD
ON
tblCTHOADON
Instead of update
As
If update(iSL)
Begin
Declare int @sl,
float @dg,
d. CREATE
TRIGGER
suaCTHD
ON
tblCTHOADON
Instead of update
As
If update(iSL)
Begin
Declare int @sl,
float @dg,
Downloaded by 06-L??ng Th? M? Duyên
(luongmyduyen252203@gmail.com)
lOMoARcPSD|22659793nvarchar(9)
@soHD
Select @sl = iSL,
@dg = fDG,
@soHD =
sMaHD
From insterted
Update
tblCTHOADON
Set fThanhTien =
@sl * @dg
Where sMaHD =
@soHD
End
@soHD
Select @sl = iSL,
@dg = fDG,
@soHD =
sMaHD
From insterted
Update
tblCTHOADON
Set fThanhTien =
@sl * @dg
Where sMaHD =
@soHD and
sMaSP = @maSP
End
nvarchar(9)
@soHD
Select @sl = iSL,
@dg = fDG
From insterted
Update
tblCTHOADON
Set fThanhTien =
@sl * @dg
End
nvarchar(9)
@soHD,
nvarchar(9)
@maSP
Select @sl = iSL,
@dg = fDG,
@soHD =
sMaHD, @maSP
= sMaSP
From insterted
Update
tblCTHOADON
Set fThanhTien =
@sl * @dg
Where sMaHD =
@soHD and
sMaSP = @maSP
End
Cho bảng tblNHANVIEN(maNV, HoTen, QueQuan, HSL).
Câu lệnh để phân quyền được phép xem (lấy) dữ liệu trên bảng
tblNHANVIEN cho tài khoản
“nguoidung1” là gì?
a. GRANT ALL
ON tblNHANVIEN
TO public
b. GRANT VIEW
ON tblNHANVIEN
TO nguoidung1
c. GRANT SELECT
ON tblNHANVIEN
TO nguoidung1
d. GRANT ALL
ON tblNHANVIEN
TO nguoidung1
Phương pháp phân tán nào mà dữ liệu để tại một Server và các máy
khách (Client) liên kết
đến để khai thác?
a. Chia nhỏ dữ liệu
b. Tập trung dữ liệu
c. Sao lặp dữ liệu
d. Phương thức lai
Để kết nối CSDL phân tán trong SQL Server, số cổng cần thiết cấu
hình giữa hai máy là bao
nhiều?
a. 1444
b. 8080
c. 1422
d. 1433
Các phương pháp phân mảnh gồm:
Chọn một câu trả lời:
a. Phân mảnh ngang
b. Phân mảnh dọc
c. Phân mảnh hỗn hợp
d. Tất cả các phương án đều đúng

You might also like