Xem thêm

Stored procedure thủ tục lưu trữ trong SQL Server

Huy Erick
Lợi ích của việc sử dụng Stored Procedure trong SQL Stored Procedure là một khái niệm được sử dụng rộng rãi trong các hệ quản trị cơ sở dữ liệu (RDBMS - Relational Database Management...

Lợi ích của việc sử dụng Stored Procedure trong SQL

Stored Procedure là một khái niệm được sử dụng rộng rãi trong các hệ quản trị cơ sở dữ liệu (RDBMS - Relational Database Management System) nhằm thực thi các tác vụ cụ thể. Stored Procedure có thể được coi như một hàm trong các ngôn ngữ lập trình thông thường.

Việc sử dụng Stored Procedure trong SQL Server mang lại nhiều lợi ích quan trọng như sau:

  • Dễ dàng chỉnh sửa: Khi sử dụng Stored Procedure, các lập trình viên có thể dễ dàng chỉnh sửa mã code mà không cần khởi động lại hoặc triển khai lại ứng dụng. Điều này rất hữu ích khi bạn muốn thay đổi logic trong truy vấn SQL. Thay vì phải sửa code trong ứng dụng và triển khai lại, Stored Procedure cho phép lưu trữ code trực tiếp trong cơ sở dữ liệu. Đơn giản chỉ cần sử dụng lệnh ALTER Procedure để thay đổi logic bên trong Stored Procedure.

  • Giảm tải truy cập mạng: Khi sử dụng Stored Procedure, chỉ cần truyền tên của thủ tục qua mạng thay vì toàn bộ mã code SQL. Điều này giúp giảm tải truy cập mạng và tăng tốc độ thực thi truy vấn.

  • Tái sử dụng: Stored Procedure có thể được triển khai và sử dụng bởi nhiều người dùng hoặc ứng dụng khác nhau mà không cần viết lại mã code.

  • Bảo mật: Sử dụng Stored Procedure giúp giảm các mối đe dọa bảo mật bằng cách loại bỏ truy cập trực tiếp vào các bảng dữ liệu.

Bài viết này sẽ cung cấp cho bạn cú pháp và ví dụ cụ thể về cách tạo và sử dụng Stored Procedure trong SQL Server.

stored procedure Hình ảnh minh họa: Stored Procedure trong SQL Server

Tạo Stored Procedure

Để tạo một Stored Procedure trong SQL Server, bạn có thể sử dụng cú pháp sau:

CREATE PROCEDURE [TênProcedure]
AS
BEGIN
    -- Các câu lệnh SQL
END;

Ví dụ: Tạo một Stored Procedure lấy danh sách tất cả dữ liệu trong bảng CUSTOMERS.

CREATE PROCEDURE SelectCustomerstabledata
AS
BEGIN
    SELECT *
    FROM CUSTOMERS
END;

Thực thi Stored Procedure trong SQL Server

Sau khi tạo thành công Stored Procedure, bạn có thể thực thi nó bằng cách sử dụng lệnh sau:

EXEC [TênProcedure]

Ví dụ: Thực thi SelectCustomerstabledata Stored Procedure.

EXEC SelectCustomerstabledata;

Kết quả:

stored procedure

Cập nhật Stored Procedure trong SQL Server

Để thay đổi một Stored Procedure đã tồn tại, bạn có thể sử dụng lệnh ALTER PROCEDURE kết hợp với tên của Stored Procedure.

Ví dụ: Thêm điều kiện vào SelectCustomerstabledata để lọc ra những khách hàng có tuổi lớn hơn hoặc bằng 25.

ALTER PROCEDURE SelectCustomerstabledata
AS
BEGIN
    SELECT *
    FROM CUSTOMERS
    WHERE AGE >= 25
END;

Khi thực thi, kết quả sẽ là:

stored procedure

Xóa Stored Procedure

Để xóa một Stored Procedure, bạn có thể sử dụng lệnh DROP PROCEDURE hoặc DROP PROC.

DROP PROCEDURE [TênProcedure];

Tạo Stored Procedure với tham số đầu vào

Bạn có thể tạo một Stored Procedure có tham số đầu vào bằng cách sử dụng cú pháp sau:

CREATE PROCEDURE [TênProcedure] (@param1 datatype1, @param2 datatype2, ..., @paramn datatypen)
AS
BEGIN
    -- Các câu lệnh SQL sử dụng tham số
END;

Ví dụ: Chuyển SelectCustomerstabledata thành một Stored Procedure nhận tham số AGE để lọc dữ liệu.

CREATE PROCEDURE SelectCustomerstabledata (@AGE INT)
AS
BEGIN
    SELECT *
    FROM CUSTOMERS
    WHERE AGE >= @AGE
END;

Thực thi Stored Procedure với tham số:

EXEC SelectCustomerstabledata 25;

Kết quả:

stored procedure

Tạo Stored Procedure với tham số đầu vào có giá trị mặc định

Bạn cũng có thể khởi tạo giá trị mặc định cho các tham số đầu vào của Stored Procedure. Khi không truyền giá trị cho tham số, giá trị mặc định sẽ được sử dụng.

Ví dụ: Tạo Stored Procedure SelectCustomerstabledata với tham số AGE có giá trị mặc định là 25.

CREATE PROCEDURE SelectCustomerstabledata (@AGE INT = 25)
AS
BEGIN
    SELECT *
    FROM CUSTOMERS
    WHERE AGE >= @AGE
END;

Khi thực thi Stored Procedure:

EXEC SelectCustomerstabledata 25;

hoặc

EXEC SelectCustomerstabledata;

Kết quả sẽ giống nhau.

stored procedure

Tạo Stored Procedure với tham số đầu ra

Để tạo một tham số OUTPUT trong Stored Procedure, bạn có thể sử dụng cách tạo tham số thông thường và thêm từ khóa OUTPUT vào cuối.

Mỗi Stored Procedure có thể có một hoặc nhiều tham số OUTPUT.

Ví dụ:

CREATE PROCEDURE SelectCustomerstabledata (@AGE INT = 25, @CUSTOMER_COUNT INT OUTPUT)
AS
BEGIN
    SELECT *
    FROM CUSTOMERS
    WHERE AGE >= @AGE
    SELECT @CUSTOMER_COUNT = @@ROWCOUNT;
END;

Trong đó:

  • @@ROWCOUNT là một biến hệ thống trong SQL Server dùng để lưu tổng số dòng bị ảnh hưởng bởi câu truy vấn gần nhất.

  • SELECT @CUSTOMER_COUNT = @@ROWCOUNT; gán giá trị của @@ROWCOUNT vào biến CUSTOMER_COUNT.

Thực thi Stored Procedure với tham số đầu ra

Sau khi tạo Stored Procedure có tham số đầu ra, bạn có thể thực thi nó như sau:

DECLARE @COUNT INT;
EXEC SelectCustomerstabledata
@AGE = 25,
@CUSTOMER_COUNT = @COUNT;
SELECT @COUNT AS 'TỔNG';

Kết quả:

TỔNG: 5

Hy vọng qua bài viết này, bạn đã hiểu thêm về Stored Procedure trong SQL Server.

1