Bài này cafedev chia sẻ cho ace về Stored Procedures trong SQL là gì? Tại sao nó lại rất quan trọng khi học SQL.

Lưu ý: Các bạn tham khảo bài giới thiệu này để lấy dữ liệu mẫu và chạy các ví dụ của toàn bộ series này nha. Khi bạn thực hành mà không tìm thấy kết quả và không xảy ra lỗi thì có thể dữ liệu của bạn không tồn tại, vì vậy, bạn có thể insert thêm data vào bảng và thực hành lại nha.

1. Stored Procedures là gì?

Stored Procedures là một đoạn code  SQL đã được chuẩn bị sẵn mà bạn có thể lưu. Do đó, đoạn code có thể được sử dụng lại nhiều lần.

Vì vậy, nếu bạn có một truy vấn SQL mà bạn viết đi viết lại nhiều lần, hãy lưu nó dưới dạng một Stored Procedures, sau đó chỉ cần gọi nó để thực thi nó. Nhờ vậy nó rất quan trọng và khá hữu dụng cho việc sử dụng lại code, dễ dàng bảo trì code sau này.

Bạn cũng có thể truyền các tham số cho một Stored Procedures, để tStored Procedures có thể hoạt động dựa trên (các) giá trị tham số được truyền vào.

2. Cú pháp

/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/

CREATE PROCEDURE procedure_name
AS
sql_statement
GO;

Cách dùng Stored Procedures:

EXEC procedure_name;

3. Ví dụ về Stored Procedures 

  • Stored Procedures bình thường:

Câu lệnh SQL sau tạo một Stored Procedures có tên “SelectAllCustomers” chọn tất cả các dữ liệu từ bảng “Khách hàng”:

/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/

CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;

Thực hiện Stored Procedures  ở trên như sau:

EXEC SelectAllCustomers;
  • Stored Procedures với một tham số:

Câu lệnh SQL sau tạo Stored Procedures chọn Khách hàng từ một Thành phố cụ thể từ bảng “Khách hàng”:

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30)
AS
SELECT * FROM Customers WHERE City = @City
GO;

Thực hiện Stored Procedures  ở trên như sau:

EXEC SelectAllCustomers @City = 'HCM';
  • Stored Procedures với nhiều tham số:

Việc thiết lập nhiều tham số rất dễ dàng. Chỉ cần liệt kê từng tham số và kiểu dữ liệu được phân tách bằng dấu phẩy như hình dưới đây.

Câu lệnh SQL sau tạo một Stored Procedures chọn Khách hàng từ một Thành phố cụ thể với Mã bưu điện cụ thể từ bảng “Khách hàng”:

/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode
GO;

Thực hiện Stored Procedures ở trên như sau:

EXEC SelectAllCustomers @City = 'Hà Nội', @PostalCode = '93847';

Nguồn và Tài liệu tiếng anh tham khảo:

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!