Tạo PROCEDURE (thủ tục) trong SQL Server

Ví dụ từ A-Z cách tạo thủ tục trong SQL Server ứng dụng siêu hay khi làm phần mềm

Cách viết thủ tục (procedure) trong SQL Server.

  1. Procedure trong SQL Server là gì ?
  2. Cú pháp tạo PROCEDURE
  3. Thực hành PROCEDURE
  4. Các loại PROCEDURE hay sử dụng

 

1. Procedure trong SQL Server là gì ?

Trong SQL Server, Procedure (tên đầy đủ là Stored Procedure) là một tập hợp các câu lệnh SQL được lưu trữ trong cơ sở dữ liệu để thực hiện một tác vụ cụ thể. Bạn có thể hiểu nôm na nó giống như một hàm hoặc đoạn chương trình có thể tái sử dụng nhiều lần.

2. Cú pháp tạo PROCEDURE

CREATE PROCEDURE TenThuTuc
    @ThamSo1 KieuDuLieu,
    @ThamSo2 KieuDuLieu = GiaTriMacDinh, -- (nếu có)
    @ThamSo3 KieuDuLieu OUTPUT           -- (nếu có đầu ra)
AS
BEGIN
    -- Các câu lệnh SQL ở đây
END

3. Thực hành tạo PROCEDUR

Thực hành cùng lập trình viên học khóa học SQL Server

4. Các loại Procedure trong SQL Server

1. Thủ tục không có tham số

    Không cần truyền gì khi gọi.

🔹 Ví dụ:

CREATE PROCEDURE sp_LietKeHocSinh
AS
BEGIN
    SELECT * FROM HocSinh;
END

🔹 Cách gọi:
EXEC sp_LietKeHocSinh;

Thủ tục có tham số truyền vào (Input Parameters)

    Dùng để truyền dữ liệu đầu vào cho thủ tục xử lý.

🔹 Ví dụ:

CREATE PROCEDURE sp_TimHocSinhTheoLop
    @Lop NVARCHAR(20)
AS
BEGIN
    SELECT * FROM HocSinh WHERE Lop = @Lop;
END

🔹 Cách gọi:

EXEC sp_TimHocSinhTheoLop @Lop = '10A1';

Gọi ngắn:

EXEC sp_TimHocSinhTheoLop '10A1';

Tham số đầu ra (Output Parameters)

    Dùng để trả lại kết quả sau khi thủ tục thực hiện xong.

🔹 Ví dụ: Trả về tổng số học sinh

CREATE PROCEDURE sp_DemHocSinhTheoLop
    @Lop NVARCHAR(20),
    @SoLuong INT OUTPUT
AS
BEGIN
    SELECT @SoLuong = COUNT(*) FROM HocSinh WHERE Lop = @Lop;
END

🔹 Cách gọi:

DECLARE @Dem INT;
EXEC sp_DemHocSinhTheoLop @Lop = '10A1', @SoLuong = @Dem OUTPUT;
PRINT 'Số học sinh: ' + CAST(@Dem AS NVARCHAR);

Gọi ngắn:

DECLARE @Dem INT;
EXEC sp_DemHocSinhTheoLop  '10A1', @Dem OUTPUT;
PRINT 'Số học sinh: ' + CAST(@Dem AS NVARCHAR);

Trả giá trị thông qua RETURN (kiểu int)

    Dùng RETURN để trả về một giá trị nguyên (thường là mã lỗi, trạng thái...).

🔹 Ví dụ:

CREATE PROCEDURE sp_KiemTraTonTai
    @TT INT
AS
BEGIN
    IF EXISTS (SELECT 1 FROM HocSinh WHERE TT = @TT)
        RETURN 1;  -- Tồn tại
    ELSE
        RETURN 0;  -- Không tồn tại
END

🔹 Cách gọi:

DECLARE @KetQua INT;
EXEC @KetQua = sp_KiemTraTonTai 105;
PRINT 'Kết quả: ' + CAST(@KetQua AS NVARCHAR);

 

Bài viết liên quan:

Ví dụ từ A-Z cách tạo thủ tục trong SQL Server ứng dụng siêu hay khi làm phần mềm