Tham số OUTPUT của Stored Procedure trong SQL Server

Bài này bạn sẽ được học cách sử dụng tham số OUTPUT trong procedure, nhiệm vụ của nó là thiết lập giá trị sẽ được trả về khi gọi đến một chương trình stored procedure.

1. Tạo tham số OUTPUT

Để tạo một tham số OUTPUT thì bạn vẫn sử dụng cách tạo như một tham số bình thường, có điều là bạn phải thêm từ khóa OUTPUT vào vị trí cuối cùng của khai báo.

parameter_name data_type OUTPUT

Mỗi stored procedure có thể có một hoặc nhiều tham số OUTPUT, và bạn có thể chọn kiểu dữ liệu bất kì như: varchar, nvachar, int, date, ...

Hay xem ví dụ dưới đây, mình tạo một procedure có tên là uspFindProductByModel với hai tham số đầu vào, trong đó có một tham số là OUTPUT dùng để trả tổng số sản phẩm.

CREATE PROCEDURE uspFindProductByModel (
    @model_year SMALLINT,
    @product_count INT OUTPUT
) AS
BEGIN
    SELECT 
        product_name,
        list_price
    FROM
        production.products
    WHERE
        model_year = @model_year;
 
    SELECT @product_count = @@ROWCOUNT;
END;

Trong đó;

  • @@ROWCOUNT là biến toàn cục lưu trữ tổng số record trả về
  • SELECT @product_count = @@ROWCOUNT; là gán tổng số record vào tham số OUTPUT

2. Gọi Stored Procedure với tham số OUTPUT

Bạn đã biết cách tạo rồi, bây giờ bạn cần biết thêm cách gọi nữa.

Vì tham số OUPUT có dạng tham chiếu nên bạn phải khai báo một biến trước, sau đó truyền nó vào procedure, khi chạy procedure xong thì giá trị của biến đó sẽ phụ thuộc vào nội dung bên trong của procedure.

Hãy xem ví dụ dưới đây để hiểu rõ hơn.

DECLARE @count INT;
 
EXEC uspFindProductByModel
    @model_year = 2018
    @product_count = @count;
 
SELECT @count AS 'Number of products found'; 

Nếu mọi thứ OK thì khi chạy chương trình này bạn sẽ nhận được kết quả như hình sau:

Như vậy là trong bài này bạn đã được học cách sử dụng tham số OUTPUT trong SQL Server, kiểu tham số này được sử dụng rất nhiều nên bạn cần hiểu rõ về nó nhé.

Khóa học nên xem

Nguồn: freetuts.net