Những điều nên biết về STORED PROCEDURE (SP)

Blog / Tin công nghệ 04/12/2023
nhung-dieu-nen-biet-ve-stored-procedure-sp
Phụ lục

Hôm nay chúng ta cùng tìm hiểu về STORED PROCEDURE với mình trong phần kiến thức hôm nay. Hay còn gọi tắt là SP.

STORED PROCEDURE (SP) trong SQL là gì?

Stored Procedure là 1 phần không thể thiếu của SQL Server. Chúng có thể hỗ trợ rất nhiều cho lập trình và cấu hình cơ sở dữ liệu.

Một Stored Procedure là bao gồm các câu lệnh Transact-SQL và được lưu lại trong cơ sở dữ liệu. Các lập trình viên chỉ cần gọi ra và thực thi thông qua SQL Server Management Studio hoặc ngay trong ứng dụng đang phát triển.

Transact-SQL dựa trên SQL, nó là một ngôn ngữ lập trình được sử dụng làm trung gian giữa cơ sở dữ liệu và các ứng dụng. Nó tương đối dễ học vì thực chất nó được tạo bởi hầu hết là các lệnh SQL.

Mục đích sử dụng SP

  • Nó là tập hợp các khối lệnh, dùng để tái sử dụng. Bạn cứ hình dung nó như hàm ở các ngôn ngữ lập trình vậy (function/method).
  • Có thể truyền tham số khi gọi nó.

Hướng dẫn cách sử dụng SP trong SQL

Tạo SP

Cú pháp

CREATE PROCEDURE procedure_name ([parameter[,...]])

BEGIN

sql_statement

END;

Cách gọi để thực thi:

CALL procedure_name;

Ví dụ

Tạo ra một SP để đăng ký thông tin khám bệnh dựa trên 3 thông tin được đưa vào: mã bác sĩ (p_doctor_id), mã bệnh nhân (p_patient_id), phí khám bệnh (p_fee)

Với phần lệnh sẽ thực hiện đăng ký dữ liệu vào các table lần lượt là: medical_record (sổ khám bệnh), doctor_treatment (bác sĩ khám bệnh).

Sử dụng hàm LAST_INSERT_ID() để lấy mã sổ (record_id) vừa thêm vào table medical_record.

Cuối cùng, thực hiện hiển thị ra toàn bộ thông tin.

delimiter //

CREATE PROCEDURE sp_register_treatment (p_doctor_id INT

                                        , p_patient_id INT

                                        , p_fee DOUBLE)

BEGIN

INSERT INTO medical_record (date_of_examination, fee, patient_id)

VALUES (CURDATE(), p_fee, p_patient_id);

    INSERT INTO doctor_treatment (doctor_id, record_id)

 VALUES (p_doctor_id, LAST_INSERT_ID());

    SELECT d.doctor_id, d.last_name, mr.fee, p.patient_id, p.`name`

    FROM doctor d

INNER JOIN doctor_treatment dt ON d.doctor_id = dt.doctor_id

       INNER JOIN medical_record mr ON dt.record_id = mr.record_id

        INNER JOIN patient p ON mr.patient_id = p.patient_id

WHERE mr.record_id = LAST_INSERT_ID();

END //

delimiter ;

Thực hiện gọi SP thực thi bởi từ khoá CALL:

CALL sp_register_treatment(9, 3, 70000);

Hướng dẫn cách sử dụng SP trong SQL

Xoá SP

Cú pháp

DROP PROCEDURE procedure_name

Ví dụ

Xoá SP ở đã tạo ở bên trên:

DROP PROCEDURE sp_register_treatment

Tham số và biến ở SP

Ở SP sẽ hỗ trợ 3 dạng tham số: IN, OUT, INOUT. Với ý nghĩa như sau:

  • IN: kiểu tham số chỉ truyền giá trị vào SP.
  • OUT: kiểu tham số chỉ tham gia SP và lấy giá trị khi kết thúc SP.
  • INOUT: kiểu tham kết hợp IN + OUT.

Còn muốn tạo ra biến lưu trữ giá trị khi thao tác với dữ liệu, thì hãy tạo như thế này:

DECLARE total INT DEFAULT 0;

SET total = 10;

Mình đang thực hiện tạo ra biến total có kiểu dữ liệu là số, với giá trị mặc định là 0. Sau đó tiếp tục thực hiện phép gán bởi từ khoá SET, giá trị của total cuối cùng là 10.

Kết luận

Như bạn đã thấy, STORED PROCEDURE khá giống như hàm ở các ngôn ngữ khác, nhưng ở đây nó hỗ trợ đa dạng về kiểu tham số và cú pháp sẽ phức tạp hơn so với các ngôn ngữ thông thường

Xem thêm: https://devwork.vn/blog/nhung-trang-web-tuyen-dung-danh-cho-dan-it


Devwork

Devwork là Nền tảng TUYỂN DỤNG IT CẤP TỐC với mô hình kết nối Nhà tuyển dụng với mạng lưới hơn 30.000 headhunter tuyển dụng ở khắp mọi nơi.Với hơn 1800 doanh nghiệp IT tin dùng Devwork để :

  • Tối ưu chi phí
  • Tiết kiệm thời gian
  • Tăng tốc tuyển dụng tối đa
  • Đăng ký ngay Devwork trong hôm nay để tuyển dụng những tài năng ưu tú nhất.

    Tag Cloud:

    Tác giả: quyenntt

    Link chia sẻ

    Bình luận

    Việc làm tại Devwork

    khám phá các cơ hội việc làm tốt nhất tại Devwork Xem thêm

    Bài viết liên quan

    Danh sách bài viết liên quan có thể bạn sẽ thích Xem thêm
    rentid-nen-tang-giup-chu-xe-kiem-tra-thong-tin-va-danh-gia-uy-tin-khach-thue

    RentID – Nền tảng giúp chủ xe kiểm tra thông tin và đánh giá uy tín khách thuê

    06:41 10/08/2026

    Điểm tín nhiệm khách thuê xe giúp chủ xe đánh giá mức độ uy tín của khách hàng trước khi giao xe, đồng thời tạo cơ hội để khách thuê xây dựng lịch sử tín nhiệm qua từng giao dịch. RentID.vn mang đến giải pháp minh bạch hơn cho thị trường thuê xe tự lái....

    8car – Ứng dụng thuê xe tự lái an toàn nhờ công nghệ AI

    09:42 30/07/2026

    Khám phá 8car - nền tảng thuê xe tự lái ứng dụng AI giúp xác thực người thuê, quản lý hợp đồng, tăng tính an toàn cho chủ xe và mang đến trải nghiệm thuê xe hiện đại.

    8car-ung-dung-thue-xe-tu-lai-an-toan-nho-cong-nghe-ai

    Top 5 ứng dụng thuê xe tự lái tốt nhất tại Việt Nam

    02:33 31/07/2026

    Chỉ với vài thao tác trên điện thoại, bạn có thể tìm kiếm hàng trăm mẫu xe, so sánh giá, đặt lịch và nhận xe nhanh chóng. Mô hình kết nối trực tiếp giữa chủ xe và khách thuê cũng giúp mức giá cạnh tranh và đa dạng lựa chọn hơn. Đây là xu hướng đang phát triển mạnh tại Việt Nam.

    top-5-ung-dung-thue-xe-tu-lai-tot-nhat-tai-viet-nam

    SALD – CRM tích hợp Gmail giúp quản lý khách hàng hiệu quả ngay trong hộp thư

    16:20 29/07/2026

    Trong nhiều doanh nghiệp, Gmail đã trở thành công cụ làm việc chính. Mỗi ngày nhân viên kinh doanh, chăm sóc khách hàng hay quản lý đều dành hàng giờ để gửi email, trao đổi báo giá, theo dõi dự án và chăm sóc khách hàng.Tuy nhiên, Gmail vốn chỉ được thiết kế để gửi và nhận email. Khi số lượng khách hàng tăng lên, việc tìm kiếm lịch sử trao đổi, ghi nhớ thông tin khách hàng hay theo dõi tiến độ xử lý trở nên khó khăn.

    sald-crm-tich-hop-gmail-giup-quan-ly-khach-hang-hieu-qua-ngay-trong-hop-thu
    onsite-nhat-ban

    Onsite Nhật Bản: Điều Kiện, Cơ Hội Và Kinh Nghiệm Thành Công

    07:26 30/06/2026

    Onsite Nhật Bản là mục tiêu nghề nghiệp của nhiều kỹ sư công nghệ thông tin nhờ mức thu nhập hấp dẫn, môi trường làm việc chuyên nghiệp và cơ hội phát triển quốc tế. Tuy nhiên, không phải ai cũng hiểu rõ onsite là gì, cần chuẩn bị những gì và cơ hội phát triển ra sao. Bài viết dưới đây sẽ giúp bạn hiểu toàn diện về hình thức làm việc onsite tại Nhật Bản và những kinh nghiệm thực tế để gia tăng cơ hội được lựa chọn.

    viec-lam-it-nhat-ban

    Việc Làm IT Nhật Bản: Cơ Hội Nghề Nghiệp, Mức Lương & Điều Kiện Ứng Tuyển Mới Nhất

    08:45 29/06/2026

    Việc làm IT Nhật Bản đang trở thành lựa chọn hấp dẫn đối với nhiều kỹ sư công nghệ Việt Nam nhờ mức lương cạnh tranh, môi trường làm việc chuyên nghiệp và cơ hội phát triển quốc tế. Không chỉ các lập trình viên giàu kinh nghiệm, ngay cả Fresher và Junior Developer cũng có nhiều cơ hội tiếp cận thị trường lao động Nhật Bản. Vậy ngành IT tại Nhật đang tuyển dụng những vị trí nào, yêu cầu ra sao và mức thu nhập có thực sự hấp dẫn? Cùng Devwork tìm hiểu chi tiết trong bài viết dưới đây.