wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

TN-Chương 4: Thủ tục Lưu trữ trong SQL

Total questions: 30

Worksheet time: 16mins

Name
Class
Date
1.

Thủ tục lưu trữ trong SQL Server được lưu trữ ở đâu?

a)

Một bảng dữ liệu

b)

Trên server trong cơ sở dữ liệu

c)

Trong ứng dụng client

d)

Trong file hệ thống

2.

Lệnh nào được sử dụng để gọi một thủ tục lưu trữ?

a)

INVOKE

b)

EXECUTE hoặc EXEC

c)

TRIGGER

d)

SELECT

3.

Thủ tục lưu trữ giúp gì cho cơ sở dữ liệu?

a)

Tăng kích thước cơ sở dữ liệu

b)

Tăng hiệu suất và bảo mật

c)

Giảm tốc độ truy vấn

d)

Chỉ lưu trữ dữ liệu tạm thời

4.

Cú pháp nào dùng để khai báo một biến trong thủ tục?

a)

DECLARE @TenBien KieuDuLieu

b)

SET @TenBien KieuDuLieu

c)

CREATE @TenBien KieuDuLieu

d)

ALTER @TenBien KieuDuLieu

5.

Tham số trong thủ tục lưu trữ được khai báo như thế nào?

a)

@ThamSo KieuDuLieu

b)

DECLARE @ThamSo KieuDuLieu

c)

SET @ThamSo = KieuDuLieu

d)

CREATE PARAMETER @ThamSo

6.

Lệnh nào dùng để sửa một thủ tục lưu trữ?

a)

MODIFY PROCEDURE

b)

ALTER PROCEDURE

c)

UPDATE PROCEDURE

d)

CHANGE PROCEDURE

7.

Để xóa thủ tục lưu trữ, lệnh nào được sử dụng?

a)

DELETE PROCEDURE

b)

DROP PROCEDURE

c)

REMOVE PROCEDURE

d)

ERASE PROCEDURE

8.

Biến trong thủ tục có thể được sử dụng để làm gì?

a)

Lưu trữ dữ liệu vĩnh viễn

b)

Lưu trữ giá trị tạm thời trong thủ tục

c)

Tạo bảng mới

d)

Xóa cơ sở dữ liệu

9.

Thủ tục nào dưới đây trả về tập hợp kết quả?

a)

INSERT INTO NhanVien VALUES (...)

b)

SELECT * FROM NhanVien

c)

SET @Bien = 10

d)

RETURN 0

10.

Tham số đầu ra (OUTPUT) được dùng để làm gì?

a)

Tạo bảng mới

b)

Trả về giá trị từ thủ tục cho người gọi

c)

Xóa bản ghi

d)

Lặp lại câu lệnh

11.

Thủ tục sau có chức năng gì?

CREATE PROCEDURE sp_ThemPhong @TenPhong NVARCHAR (50)

AS

BEGIN INSERT INTO PhongBan (TenPhong)VALUES (@TenPhong)

END

a)

Trả về danh sách phòng ban

b)

Thêm một phòng ban mới

c)

Cập nhật tên phòng ban

d)

Xóa phòng ban

12.

Câu 12: Cú pháp nào đúng để gọi thủ tục có tham số đầu ra?

a)

EXEC spT huT uc@BienDECLARE@BienINT; EXECspT huT uc@BienOUT P UT

b)

CALL spT huT uc@BienOUT P UT SELECT spT huT uc@Bien

13.

Câu 13: Kết quả của đoạn mã sau là gì?

DECLARE @SoNV INT SET @SoNV = (SELECT COUNT (*)FROM NhanVien)

SELECT @SoNV

a)

Trả về bảng nhân viên

b)

Trả về số lượng nhân viên

c)

Không trả về gì

d)

Lỗi cú pháp

14.

Câu 14: Thủ tục sau trả về gì?

CREATE PROCEDURE sp_KiemTraLuong @MaNV INT, @Luong INT OUTPUT

AS

BEGIN SET @Luong = (SELECT Luong FROM NhanVien WHERE MaNV = @MaNV)

END

a)

Tập hợp kết quả

b)

Giá trị lương qua tham số đầu ra

c)

Mã trạng thái

d)

Không trả về gì

15.

Câu 15: Lệnh …IFELSE được sử dụng trong trường hợp nào?

a)

Lặp lại các câu lệnh

b)

Thực hiện câu lệnh dựa trên điều kiện

c)

Thoát khỏi thủ tục

d)

Tạo biến mới

16.

Câu 16: Kết quả của đoạn mã sau là gì?

DECLARE @i INT = 1 WHILE @i <= 4

BEGIN PRINT CAST(@i AS VARCHAR)SET @i = @i + 1

END

a)

In ra: 1, 2, 3, 4

b)

In ra: 1, 2, 3

c)

In ra: 4, 3, 2, 1

d)

Không in gì

17.

Câu 17: Lệnh BREAK trong vòng lặp WHILE làm gì?

a)

Bỏ qua vòng lặp hiện tại và tiếp tục vòng lặp tiếp theo

b)

Thoát hoàn toàn khỏi vòng lặp

c)

Tăng giá trị biến

d)

Thực thi câu lệnh ELSE

18.

Câu 18: Lệnh CONTINUE trong vòng lặp WHILE có tác dụng gì?

a)

Thoát khỏi thủ tục

b)

Bỏ qua phần còn lại của vòng lặp và kiểm tra lại điều kiện

c)

Dừng vòng lặp vĩnh viễn

d)

Trả về giá trị

19.

Câu 19: Thủ tục sau có lỗi gì? CREATE PROCEDURE sp_TimNV AS BEGIN SELECT * FROM NhanVien WHERE MaNV = @MaNV END

a)

Thiếu tham số @MaNV

b)

Sai cú pháp SELECT

c)

Thiếu RETURN

d)

Thiếu khối TRY…CATCH

20.

Cú pháp nào đúng để xóa thủ tục mà không gây lỗi nếu thủ tục không tồn tại?

a)

DROP PROCEDURE TenThucDROP PROCEDUREIF EXIST TenThuc

b)

DELETE PROCEDURE TenThucALT ERP PROCEDURETenThucDROP

21.

Thủ tục sau có chức năng gì?

CREATE PROCEDURE sp_CapNhatTenNV @MaNV INT, @TenNV NVARCHAR(50)

AS

BEGIN

UPDATE NhanVien SET TenNV = @TenNV WHERE MaNV = @MaNV

END

a)

Thêm nhân viên mới

b)

Cập nhật tên nhân viên

c)

Xóa nhân viên

d)

Trả về danh sách nhân viên

22.

Kết quả của thủ tục sau khi thực thi là gì?

CREATE PROCEDURE sp_TinhLuongTB @LuongTB FLOAT OUTPUT

AS

BEGIN SET @LuongTB = (SELECT AVG(Luong)FROM NhanVien)

END

DECLARE @KetQua FLOAT EXEC sp_TinhLuongTB @KetQua OUTPUT

SELECT @KetQua

a)

Trả về bảng nhân viên

b)

Trả về lương trung bình qua tham số đầu ra

c)

Trả về mã trạng thái

d)

Không trả về gì

23.

Thủ tục sau có hợp lệ không?

CREATE PROCEDURE sp_TimNVTheoPhong @MaPhong INT = 1

AS

BEGIN

SELECT *

FROM NhanVien

WHERE MaPhong = @MaPhong

END

a)

Không, vì thiếu tham số đầu ra

b)

Có, vì sử dụng tham số mặc định hợp lệ

c)

Không, vì sai cú pháp SELECT

d)

Không, vì thiếu khối TRY…CATCH

24.

Kết quả của đoạn mã sau là gì?

DECLARE @i INT = 1 WHILE @i <= 6

BEGIN

IF @i = 4 BREAK PRINT 'Số: '+ CAST(@i AS VARCHAR)SET @i = @i + 1

END

a)

In ra: Số: 1, 2, 3

b)

In ra: Số: 1, 2, 3, 4

c)

In ra: Số: 4, 5, 6

d)

Không in gì

25.

Thủ tục sau trả về gì?

CREATE PROCEDURE sp_KiemTraPhong @MaPhong INT

AS

BEGIN

IF EXISTS (SELECT 1 FROM PhongBan WHERE MaPhong = @MaPhong)

RETURN 1

RETURN 0

END

a)

Tập hợp kết quả

b)

Mã trạng thái (1: tồn tại, 0: không tồn tại)

c)

Tham số đầu ra

d)

Không trả về gì

26.

Thủ tục sau có lỗi gì?

CREATE PROCEDURE sp_XoaNV @MaNV INT

AS

BEGIN

DELETE FROM NhanVien WHERE MaNV = MaNV

END

a)

Thiếu tham số đầu ra

b)

Sai cú pháp trong điều kiện WHERE

c)

Thiếu khối TRY…CATCH

d)

Thiếu khai báo biến

27.

Thủ tục sau có thể thực thi mà không truyền tham số không?

CREATE PROCEDURE sp_LayNVTheoLuong @LuongMin INT = 3000, @LuongMax INT

AS

BEGIN

SELECT *

FROM NhanVien

WHERE Luong BETWEEN @LuongMin AND @LuongMax

END

a)

Có, vì cả hai tham số đều có giá trị mặc định

b)

Không, vì tham số @LuongMax không có giá trị mặc định

c)

Có, nhưng sẽ gây lỗi cú pháp

d)

Không, vì thiếu tham số đầu ra

28.

Khi sử dụng ALTER PROCEDURE, điều gì được giữ nguyên?

a)

Nội dung thủ tục

b)

Tên thủ tục và quyền truy cập

c)

Tham số đầu ra

d)

Giá trị trả về mặc định

29.

Kết quả của thủ tục sau là gì?

CREATE PROCEDURE sp_DemNVTheoPhong @MaPhong INT, @SoNV INT OUTPUT

AS

BEGIN SET @SoNV = (SELECT COUNT(*)FROM NhanVien WHERE MaPhong = @MaPhong) IF @SoNV > 0

SELECT *

FROM NhanVien

WHERE MaPhong = @MaPhong

END

a)

Chỉ trả về tham số đầu ra

b)

Trả về cả tham số đầu ra và tập hợp kết quả

c)

Chỉ trả về tập hợp kết quả

d)

Không trả về gì nếu không có nhân viên

30.

Thủ tục sau sử dụng …TRYCATCH để làm gì?

CREATE PROCEDURE sp_ThemNV @TenNV NVARCHAR(50), @Luong INT

AS

BEGIN BEGIN TRY INSERT INTO NhanVien (TenNV , Luong)VALUES (@TenNV, @Luong) RETURN 0 END TRY BEGIN CATCH RETURN -1 END CATCH

END

a)

Trả về bảng nhân viên

b)

Xử lý lỗi khi thêm bản ghi và trả về mã trạng thái

c)

Tính tổng lương

d)

Kiểm tra tham số đầu vào