wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Câu hỏi về SQL Server

Total questions: 79

Worksheet time: 40mins

Name
Class
Date
1.

Trong SQL Server, login được tạo ở cấp độ nào?

a)

Database

b)

Server

c)

Table

d)

Schema

2.

Để cho phép một người dùng truy cập một cơ sở dữ liệu cụ thể, bạn cần:

a)

Chỉ tạo login

b)

Chỉ tạo user

c)

Tạo login và ánh xạ với user trong database

d)

Chỉ cấp quyền SELECT cho bảng

3.

Lệnh nào được dùng để tạo login SQL Server dùng xác thực SQL?

a)

CREATE USER ...

b)

CREATE LOGIN ... WITH PASSWORD = '...'

c)

CREATE ROLE ...

d)

GRANT LOGIN ...

4.

Khi bạn tạo user trong một database mà không chỉ định login, điều gì xảy ra?

a)

SQL Server tự động tạo login trùng tên

b)

User sẽ là contained database user

c)

User không thể đăng nhập vào database

d)

SQL Server báo lỗi ngay lập tức

5.

Khi bạn tạo user trong một database mà không chỉ định tên user, điều gì xảy ra?

a)

SQL Server tự động tạo user trùng tên

b)

User sẽ là contained database user

c)

User không thể đăng nhập vào database

d)

SQL Server báo lỗi ngay lập tức

6.

Lệnh nào dùng để gán user vào một database role có sẵn?

a)

GRANT ROLE ... TO ...

b)

ALTER ROLE ... ADD MEMBER ...

c)

CREATE ROLE ... WITH ...

d)

EXEC sp_addlogin ...

7.

Lệnh nào được dùng để thay đổi mật khẩu cho một login?

a)

ALTER LOGIN ... WITH PASSWORD = '...'

b)

ALTER USER ... WITH PASSWORD = '...'

c)

GRANT PASSWORD ... TO ...

d)

sp_password ...

8.

Nếu muốn cấp quyền SELECT cho một user trên bảng Customers, bạn dùng lệnh:

a)

ALTER USER ... ADD SELECT ON Customers

b)

GRANT SELECT ON Customers TO user_name

c)

CREATE ROLE ... WITH SELECT

d)

EXEC sp_addrolemember 'SELECT', user_name

9.

Để xóa một user ra khỏi database mà không ảnh hưởng login, dùng lệnh:

a)

DROP LOGIN user_name

b)

DROP USER user_name

c)

ALTER LOGIN user_name DISABLE

d)

REVOKE CONNECT FROM user_name

10.

Khi một login được ánh xạ đến nhiều database, nó sẽ:

a)

Dùng cùng một user_id ở tất cả database

b)

Có user riêng biệt trong mỗi database

c)

Không thể đăng nhập nhiều database cùng lúc

d)

Bị giới hạn quyền SELECT mặc định

11.

Khi một login được ánh xạ đến nhiều database, nó sẽ:

a)

Dùng cùng một user_id ở tất cả database

b)

Có user riêng biệt trong mỗi database

c)

Không thể đăng nhập nhiều database cùng lúc

d)

Bị giới hạn quyền SELECT mặc định

12.

Lệnh nào dùng để vô hiệu hóa một login SQL Server?

a)

REVOKE LOGIN ...

b)

ALTER LOGIN ... DISABLE

c)

DROP LOGIN ...

d)

DENY CONNECT SQL TO ...

13.

Để kiểm tra user hiện tại đang đăng nhập bằng login nào trong database, dùng:

a)

SELECT USER_NAME()

b)

SELECT SUSER_SNAME()

c)

SELECT CURRENT_USER()

14.

Nếu bạn REVOKE một quyền từ user, điều gì xảy ra?

a)

Quyền đó bị thu hồi hoàn toàn

b)

Quyền đó bị xóa, nhưng user có thể nhận lại từ vai trò khác

c)

SQL Server sẽ vô hiệu hóa login

d)

Không có tác dụng nếu quyền chưa được cấp

15.

Quyền DENY có độ ưu tiên thế nào so với GRANT?

a)

GRANT cao hơn DENY

b)

DENY cao hơn GRANT

c)

Cả hai ngang nhau, quyền mới nhất ghi đè

d)

Tùy thuộc vào vai trò

16.

Muốn xóa một login nhưng login này đang được dùng trong database, bạn phải:

a)

Dùng DROP LOGIN trực tiếp

b)

Xóa tất cả user được ánh xạ trong database trước

c)

Vô hiệu hóa login rồi xóa

d)

Dùng REVOKE CONNECT trước

17.

Hàm trong SQL Server có thể trả về: Một giá trị scalar (mệnh đề 1) hay Một bảng (table-valued function) (mệnh đề 2)

a)

Mệnh đề 1

b)

Mệnh đề 2

c)

Không trả về gì

d)

Cả mệnh đề 1 và mệnh đề 2

18.

Lệnh nào tạo stored procedure mới?

a)

CREATE PROCEDURE proc_name AS BEGIN ... END

b)

CREATE FUNCTION proc_name AS BEGIN ... END

c)

CREATE PROC proc_name TABLE ...

d)

CREATE PROCEDURE proc_name RETURN ...

19.

Lệnh nào tạo hàm scalar?

a)

CREATE FUNCTION func_name(@param INT) RETURNS INT AS BEGIN RETURN @param+1 END

b)

CREATE PROCEDURE func_name(@param INT)

c)

CREATE FUNCTION func_name AS BEGIN ... END

d)

CREATE PROC func_name RETURNS INT ...

20.

Stored Procedure có thể nhận tham số không?

a)

b)

Không

c)

Chỉ khi dùng OUTPUT

d)

Chỉ khi dùng default value

21.

Hàm trong SQL Server có thể thay đổi dữ liệu bảng không?

a)

b)

Không

22.

Stored Procedure có thể trả về giá trị thông qua:

a)

RETURN

b)

OUTPUT parameter

c)

SELECT bảng

23.

Hàm trong SQL Server có thể thay đổi dữ liệu bảng không?

a)

b)

Không

24.

Stored Procedure có thể trả về giá trị thông qua:

a)

RETURN

b)

OUTPUT parameter

c)

SELECT bảng dữ liệu

d)

Tất cả các đáp án còn lại

25.

Lệnh nào thực thi stored procedure?

a)

EXEC proc_name

b)

EXECUTE proc_name @param=1

c)

CALL proc_name()

26.

Hàm scalar có thể dùng trong:

a)

SELECT statement

b)

WHERE clause

c)

JOIN condition

d)

Tất cả các đáp án đều đúng

27.

Inline table-valued function (TVF) khác multi-statement TVF ở điểm nào?

a)

Inline TVF chỉ có một SELECT duy nhất

b)

Multi-statement TVF có BEGIN…END và có thể chứa nhiều logic

c)

Inline TVF nhanh hơn thường xuyên

d)

Tất cả các đáp án đều đúng

28.

Khi muốn bắt lỗi trong stored procedure, dùng:

a)

TRY…CATCH

b)

BEGIN…END

c)

IF…ELSE

d)

SET ERROR

29.

Lệnh nào sửa thủ tục hiện có?

a)

ALTER PROCEDURE proc_name AS BEGIN ... END

b)

UPDATE PROCEDURE proc_name AS BEGIN ... END

c)

MODIFY PROCEDURE proc_name ...

d)

CREATE OR REPLACE PROCEDURE proc_name ...

30.

Lệnh nào sửa hàm hiện có?

a)

ALTER FUNCTION func_name

b)

MODIFY FUNCTION func_name

c)

UPDATE FUNCTION func_name

d)

CREATE OR REPLACE FUNCTION func_name

31.

Thủ tục có thể gọi hàm không?

a)

b)

Không

c)

Chỉ scalar function

d)

Chỉ table-valued function

32.

Stored Procedure có thể gọi stored procedure khác không?

a)

Có, trực tiếp bằng EXEC

b)

Không

c)

Chỉ khi cùng schema

d)

Chỉ khi cùng database

33.

OUTPUT parameter dùng để:

a)

Trả về giá trị

b)

Chỉ hiển thị dữ liệu trong procedure

c)

Tự động commit transaction

d)

Định nghĩa default value

34.

Hàm không thể chứa:

a)

INSERT/UPDATE/DELETE vào bảng cơ sở

b)

SELECT statement

c)

Câu lệnh tính toán

d)

RETURN statement

35.

Khi muốn hàm trả về bảng duy nhất từ SELECT, dùng:

a)

Inline table-valued function

b)

Multi-statement table-valued function

c)

Stored Procedure

d)

Scalar function

36.

Hàm có thể nhận tham số không?

a)

b)

Không

c)

Chỉ scalar function

d)

Chỉ table-valued function

37.

Lệnh nào gọi TVF trong SELECT?

a)

SELECT * FROM dbo.FuncName(@param)

b)

EXEC dbo.FuncName @param

c)

CALL dbo.FuncName(@param)

d)

RUN dbo.FuncName(@param)

38.

Hàm có thể nhận tham số không?

a)

b)

Không

c)

Chỉ scalar function

d)

Chỉ table-valued function

39.

RETURN trong function dùng để:

a)

Trả giá trị theo kiểu đã định (scalar hoặc table)

b)

Trả về bảng kết quả

c)

Thay đổi bảng cơ sở

d)

Gọi procedure khác

40.

Trong SQL Server, VIEW là gì?

a)

Một bảng vật lý lưu trữ dữ liệu

b)

Một bảng ảo dựa trên câu lệnh SELECT

c)

Một thủ tục lưu trữ (stored procedure)

d)

Một hàm trả về bảng

41.

Lệnh nào tạo VIEW cơ bản?

a)

CREATE VIEW view_name AS SELECT ...

b)

CREATE TABLE view_name AS SELECT ...

c)

CREATE PROCEDURE view_name AS SELECT ...

d)

CREATE FUNCTION view_name() RETURNS TABLE ...

42.

Để chỉnh sửa câu lệnh SELECT của một VIEW, bạn dùng:

a)

ALTER VIEW view_name AS SELECT ...

b)

UPDATE VIEW view_name AS SELECT ...

c)

MODIFY VIEW view_name ...

d)

RECREATE VIEW view_name ...

43.

Khi xóa VIEW, dùng lệnh nào?

a)

DROP VIEW view_name

b)

DELETE VIEW view_name

c)

REMOVE VIEW view_name

d)

ALTER VIEW view_name DROP

44.

VIEW có thể lấy dữ liệu từ:

a)

Một bảng duy nhất

b)

Nhiều bảng bằng JOIN

c)

Một VIEW khác

d)

Tất cả các đáp án đều đúng

45.

Nếu muốn hạn chế cột và hàng mà người dùng nhìn thấy, bạn dùng:

a)

Table

b)

Function

c)

View

d)

Index

46.

VIEW có thể cập nhật dữ liệu không?

a)

Luôn luôn được

b)

Không bao giờ được

c)

Có thể, nếu view đơn giản và không chứa group by, join phức tạp

d)

Chỉ khi có WITH CHECK OPTION

47.

Lệnh nào xóa và tạo lại view một cách an toàn nếu đã tồn tại?

a)

DROP VIEW IF EXISTS view_name; CREATE VIEW view_name AS ...

b)

ALTER VIEW IF EXISTS ...

c)

REPLACE VIEW view_name AS ...

d)

CREATE OR ALTER VIEW ...

48.

View có thể chứa lệnh ORDER BY không?

a)

Không bao giờ được phép

b)

Chỉ khi dùng TOP hoặc OFFSET FETCH

c)

Luôn được phép

d)

Chỉ khi có SCHEMABINDING

49.

Lệnh nào dùng để đổi tên view?

a)

ALTER VIEW ... RENAME TO ...

b)

EXEC sp_rename 'old_name', 'new_name'

c)

RENAME VIEW old_name TO new_name

d)

UPDATE VIEW old_name NAME new_name

50.

Lệnh nào dùng để đổi tên view?

a)

ALTER VIEW ... RENAME TO ...

b)

EXEC sp_rename 'old_name', 'new_name'

c)

RENAME VIEW old_name TO new_name

d)

UPDATE VIEW old_name NAME new_name

51.

Để xem danh sách tất cả view trong database:

a)

SELECT * FROM sys.views

b)

SELECT * FROM information_schema.views

c)

Dùng Object Explorer trong SSMS

d)

Tất cả các đáp án đều đúng

52.

View có thể tham chiếu đến bảng trong database khác không?

a)

Không bao giờ được

b)

Được, nếu chỉ định đầy đủ tên [database].[schema].[table]

c)

Chỉ khi dùng linked server

d)

Chỉ khi có quyền sysadmin

53.

Quyền nào cần để tạo view trong database?

a)

CREATE VIEW

b)

ALTER ANY VIEW

c)

Quyền SELECT trên bảng cơ sở

d)

Tất cả các đáp án trên đều đúng

54.

Có thể cấp quyền SELECT trên view mà không cấp quyền trực tiếp trên bảng cơ sở không?

a)

b)

Không

c)

Chỉ khi view có SCHEMABINDING

d)

Chỉ khi user là db_owner

55.

View và Table-Valued Function (TVF) khác nhau ở điểm nào?

a)

View không nhận tham số, còn TVF có thể nhận tham số

b)

View luôn nhanh hơn TVF

c)

TVF không thể join với bảng khác

d)

View lưu dữ liệu còn TVF không lưu

56.

Khi một view cơ sở bị xóa, view tham chiếu đến bảng đó sẽ:

a)

Tự động xóa

b)

Vẫn tồn tại nhưng trở thành invalid

c)

Tự động chuyển sang bảng khác

d)

Tự động làm mới định nghĩa

57.

Một view có thể tham chiếu tới chính nó không?

a)

Có, được phép đệ quy

b)

Không, SQL Server không cho phép view tự tham chiếu

c)

Chỉ khi dùng WITH RECURSIVE

d)

Chỉ khi view là indexed view

58.

Một view phức tạp với nhiều JOIN, GROUP BY, subquery có thể:

a)

Luôn cập nhật dữ liệu trực tiếp

b)

Không thể cập nhật dữ liệu

c)

Chỉ SELECT được, không thể UPDATE hoặc DELETE

59.

Một view có thể chứa lệnh UNION không?

a)

Không bao giờ được

b)

Có thể, nhưng view indexed thì không

c)

Chỉ khi view là WITH SCHEMABINDING

d)

Chỉ khi view là WITH CHECK OPTION

60.

View có thể tham chiếu tới table-valued function không?

a)

Có, giống như tham chiếu bảng

b)

Không, SQL Server không cho phép

c)

Chỉ khi function là inline TVF

d)

Chỉ khi TVF không có parameter

61.

Trigger trong SQL Server được kích hoạt khi nào?

a)

Khi chạy thủ công

b)

Khi xảy ra một sự kiện dữ liệu

c)

Khi khởi động SQL Server

d)

Khi chạy job

62.

DML Trigger được kích hoạt bởi các câu lệnh nào?

a)

SELECT

b)

INSERT, UPDATE, DELETE

c)

CREATE, ALTER, DROP

d)

CREATE LOGIN

63.

Lệnh tạo trigger trong SQL Server là:

a)

CREATE PROCEDURE

b)

CREATE FUNCTION

c)

CREATE TRIGGER

d)

CREATE EVENT

64.

Bảng deleted trong trigger chứa:

a)

Dữ liệu sau khi cập nhật

b)

Dữ liệu bị xóa hoặc trước khi cập nhật

c)

Dữ liệu mới

d)

Dữ liệu tạm

65.

Cú pháp cơ bản để tạo trigger:

a)

CREATE TRIGGER name ON database FOR INSERT

b)

CREATE TRIGGER name AFTER INSERT

c)

CREATE TRIGGER name ON table AFTER INSERT

d)

CREATE TRIGGER name ON table INSERT

66.

INSTEAD OF trigger dùng để:

a)

Thay thế hành động mặc định của câu lệnh DML

b)

Thực thi song song với hành động DML

c)

Tạo bản sao dữ liệu

d)

Xóa dữ liệu tạm

67.

Trigger có thể gọi thủ tục lưu trữ (stored procedure) không?

a)

Không

b)

c)

Chỉ trong DDL Trigger

d)

Chỉ khi trigger là AFTER

68.

Khi một trigger bị vô hiệu hóa, SQL Server:

a)

Tự động xóa trigger

b)

Không kích hoạt trigger khi sự kiện xảy ra

c)

Báo lỗi

d)

Chạy trigger sau cùng

69.

Lệnh tắt trigger tạm thời:

a)

DROP TRIGGER

b)

ALTER TRIGGER

c)

DISABLE TRIGGER

d)

DEACTIVATE TRIGGER

70.

Để bật lại trigger:

a)

ENABLE TRIGGER

b)

ACTIVATE TRIGGER

c)

RUN TRIGGER

d)

START TRIGGER

71.

Trigger có thể chứa lệnh ROLLBACK TRANSACTION để:

a)

Khôi phục dữ liệu sau khi xóa

b)

Hủy bỏ thay đổi dữ liệu vi phạm quy tắc

c)

Xóa dữ liệu trùng

d)

Sao lưu dữ liệu

72.

Trigger không nên dùng cho:

a)

Kiểm tra ràng buộc dữ liệu nhỏ

b)

Ghi log thay đổi

c)

Xử lý nghiệp vụ phức tạp nặng

d)

Gửi thông báo khi cập nhật

73.

Một trigger có thể xử lý nhiều hàng dữ liệu không?

a)

Không, chỉ một hàng

b)

Có, xử lý theo tập (set-based)

74.

Ví dụ về câu lệnh kích hoạt DDL trigger:

a)

INSERT

b)

UPDATE

c)

CREATE TABLE

d)

SELECT

75.

DDL Trigger không thể tạo trên:

a)

Cơ sở dữ liệu

b)

Server

c)

Bảng cụ thể

d)

Toàn hệ thống

76.

DDL Trigger có thể xử lý sự kiện nào sau đây?

a)

CREATE, ALTER, DROP

b)

INSERT, UPDATE

c)

SELECT

d)

BACKUP

77.

Trong DDL trigger, hàm hệ thống nào chứa thông tin sự kiện xảy ra?

a)

EVENT_DATA()

b)

TRIGGER_INFO()

c)

SYSOBJECTS()

d)

DB_EVENTS()

78.

DDL Trigger có thể rollback việc tạo bảng không?

a)

b)

Không

79.

Khi trigger dùng ROLLBACK, kết quả là:

a)

Hành động bị hủy

b)

Trigger bị xóa

c)

Không ảnh hưởng

d)

Câu lệnh tiếp tục